ホームページ >データベース >mysql チュートリアル >MySQL でデータの異種レプリケーションと同種レプリケーションを実装するにはどうすればよいですか?

MySQL でデータの異種レプリケーションと同種レプリケーションを実装するにはどうすればよいですか?

WBOY
WBOYオリジナル
2023-07-29 15:13:131530ブラウズ

MySQL でデータの異種レプリケーションと同種レプリケーションを実装するにはどうすればよいですか?

はじめに:
現代のソフトウェア開発において、データベース レプリケーションは非常に重要な機能であり、データのバックアップ、データの読み書き分離、および高可用性要件を実現できます。最も人気のあるリレーショナル データベースの 1 つである MySQL は、さまざまなシナリオのニーズを満たすさまざまなレプリケーション方法を提供します。この記事では、MySQL でデータの異種および同型レプリケーションを実装する方法を紹介し、対応するコード例を添付します。

1. MySQL データの異種レプリケーション
異種レプリケーションとは、MySQL データベースを Oracle または SQL Server にコピーするなど、MySQL データベースを他のタイプのデータベースにコピーすることを指します。異種レプリケーションを実装するには、MySQL が提供するツール Dumper および Loader を使用する必要があります。

1.1 Dumper と Loader をインストールする
次のコマンドを実行して MySQL ユーティリティをインストールします:

$ sudo apt-get install mysql-utilities

1.2 Dumper を使用して MySQL データをエクスポートします

$ mysqldump --databases <database_name> --user=<username> --password=<password> > dumpfile.sql

その中に、30ffb2bb26736e346b01d5fa27ea19b8 および cb1ebc435675187bdcfb539b370c2e37 はデータベースに接続するためのユーザー名とパスワード、dumpfile.sql はエクスポートされたデータ ファイルです。

1.3 ローダーを使用してターゲット データベースにデータをインポートします

$ mysql <database_name> -u <username> -p <password> < dumpfile.sql

このうち、6b7267f525327f2a23dcb01791a146aa はターゲット データベースの名前、d6025a37ea8687b5422f951f7288bdc5 と cb1ebc435675187bdcfb539b370c2e37 はユーザー名ですターゲット データベースに接続するためのパスワードとパスワード dumpfile.sql はエクスポートされたデータ ファイルです。

2. MySQL データの同種レプリケーション
同種レプリケーションとは、MySQL データベースを同じ MySQL データベースに複製すること、または MySQL マスター/スレーブ レプリケーションを指します。 MySQL のマスター/スレーブ レプリケーションは、データのバックアップと読み書きの分離を実現できる最も一般的なデータベース レプリケーション方法です。以下では、MySQL マスター/スレーブ レプリケーションを例として使用して説明します。

2.1 メイン データベースの構成
メイン データベースの my.cnf 構成ファイルで次のように構成します。

[mysqld]
server-id=1
log-bin=mysql-bin

メイン データベースを識別するために、server-id を 1 に設定します。 bin はバイナリログを有効にするために使用します。

2.2 レプリケーション ユーザーの作成
MySQL にログインし、次の SQL ステートメントを実行してレプリケーション ユーザーを作成します。

CREATE USER 'replication'@'slave_ip' IDENTIFIED BY 'password';
GRANT REPLICATION SLAVE ON *.* TO 'replication'@'slave_ip';
FLUSH PRIVILEGES;

このうち、slave_ip はスレーブ データベースの IP アドレスです。パスワードはレプリケーション ユーザーのパスワードです。

2.3 メイン データベース データのエクスポート
メイン データベース上で次のコマンドを実行してデータをエクスポートします:

$ mysqldump --all-databases --single-transaction --master-data=1 > dumpfile.sql

このうち、--all-databases はすべてのデータベースをエクスポートすることを意味し、-- single-transaction は、エクスポートされたデータの一貫性を維持するために、 --master-data=1 を使用してエクスポートされたデータにレプリケーション情報を追加します。

2.4 スレーブ データベースの構成
スレーブ データベースの my.cnf 構成ファイルで次のように構成します。

[mysqld]
server-id=2

スレーブ データベースを識別するために、server-id を 2 に設定します。

2.5 マスター データベースのデータをスレーブ データベースにインポートします
スレーブ データベースで次のコマンドを実行してデータをインポートします:

$ mysql -u <username> -p <password> < dumpfile.sql

その中に、d6025a37ea8687b5422f951f7288bdc5 と

2.6 マスター/スレーブ レプリケーションの開始
スレーブ データベースで次のコマンドを実行して、マスター/スレーブ レプリケーションを開始します。

CHANGE MASTER TO MASTER_HOST='master_ip', MASTER_USER='replication', MASTER_PASSWORD='password', MASTER_LOG_FILE='mysql-bin.000001', MASTER_LOG_POS=XXX;
START SLAVE;

このうち、master_ip はマスター データベースの IP アドレスです。パスワードはレプリケーション ユーザーのパスワード、mysql-bin.000001 はマスター データベースのバイナリ ログ ファイル、XXX は SHOW MASTER STATUS で取得したマスター データベースのログの場所です。

結論:
MySQL が提供するツール Dumper と Loader を通じて、MySQL データベースの他のタイプのデータベースへの異種レプリケーションを実現でき、MySQL マスター/スレーブ レプリケーションを通じて、MySQL データベースを他のタイプのデータベースに実現できます。同じ MySQL データベースの同種レプリケーション。さまざまなニーズに応じて、適切なレプリケーション方法を選択することが非常に重要です。この記事の紹介と例が、読者が MySQL のデータ レプリケーション機能をよりよく理解し、適用できるようになれば幸いです。

以上がMySQL でデータの異種レプリケーションと同種レプリケーションを実装するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。