MySQL Cluster のレプリケーションに準備をるには以下のステップを踏みます。
すべての MySQL サーバーのバージョンの互換性をチェックします (項14.10.2. 「仮定条件と一般要件」 参照)。
マスタ クラスタに権限付きのスレーブのアカウントを作成します。
mysqlM
>GRANT REPLICATION SLAVE
->ON *.* TO '
->slave_user
'@'slave_host
'IDENTIFIED BY '
slave_password
';
slave_user
がスレーブ
アカウントのユーザー名の場合、slave_host
がレプリケーション
スレーブのホスト名あるいは IP
アドレスで、slave_password
はこのアカウントを割り当てるパスワードです。
例えば、スレーブ ユーザーアカウントを
「myslave
の名前で作成する場合、」 ホスト名
「rep-slave
でログインし、」 パスワード
「53cr37
を使用して、」
以下の GRANT
ステートメントを使用します。
mysqlM
>GRANT REPLICATION SLAVE
->ON *.* TO 'myslave'@'rep-slave'
->IDENTIFIED BY '53cr37';
セキュリティのためには、一意のユーザーアカウント— 他の目的に使用されていない — をレプリケーション スレーブ アカウントに使用するようお勧めします。
マスタを使用出来るようにスレーブを設定します。MySQL
Monitor を使用すると、これを CHANGE
MASTER TO
ステートメントで実行できます。
mysqlS
>CHANGE MASTER TO
->MASTER_HOST='
->master_host
',MASTER_PORT=
->master_port
,MASTER_USER='
->slave_user
',MASTER_PASSWORD='
slave_password
';
master_host
がレプリケーション
マスタのホスト名あるいは IP
アドレスの場合、master_port
はマスタの接続に使用されるスレーブのポートで、slave_user
はマスタのスレーブの設定したユーザー名で、slave_password
は前のステップのユーザーアカウントに設定されたパスワードです。
例えば、スレーブにホスト名が
「rep-master
の MySQL
サーバーからレプリケートするよう指示した場合、」
前のステップで作成したレプリケーションのスレーブ
アカウントを使用して、以下のステートメントを使用します。
mysqlS
>CHANGE MASTER TO
->MASTER_HOST='rep-master'
->MASTER_PORT=3306,
->MASTER_USER='myslave'
->MASTER_PASSWORD='53cr37';
(このステートメントで使用する節の完全なリストは、項12.6.2.1. 「CHANGE MASTER TO
構文」
を参照してください。)
スレーブのサーバー my.cnf
ファイルの相当する設定オプションを設定してマスタを使用するスレーブを設定することもできます。前述の例
CHANGE MASTER TO
ステートメントと同じようにスレーブを設定するには、スレーブのmy.cnf
ファイルに以下の情報を含める必要があります。
[mysqld] master-host=rep-master master-port=3306 master-user=myslave master-password=53cr37
レプリケーション スレーブに
my.cnf
で設定できるその他のオプションについては、項5.1.3. 「レプリケーションのオプションと変数」
を参照してください。
注:レプリケーションのバックアップ機能を検証するには、レプリケーションのプロセスを始める前に
ndb-connectstring
オプションのスレーブの
my.cnf
ファイルに追加する必要があります。.詳細は
項14.10.9. 「MySQL Cluster のレプリケーションによるバックアップ」
を参照してください。
マスタ クラスタが既に使用されている場合、マスタのバックアップを作成しそれをスレーブにアップロードしてスレーブがマスタに同期する時間を節約することができます。スレーブが MySQL Cluster で稼動している場合には、バックアップを使用して項14.10.9. 「MySQL Cluster のレプリケーションによるバックアップ」 で説明したようにその手順を保存することでこれを実現できます。
ndb-connectstring=management_host
[:port
]
レプリケーション スレーブで MySQL Cluster を使用していない 場合、レプリケーション マスタのこのコマンドを使用してバックアップを作成できます。
shellM
>mysqldump --master-data=1
ダンプ
ファイルをスレーブにコピーしてその結果のデータをスレーブにインポートします。この後で、ここに示すように
mysql
クライアントを使用してデータをダンプファイルからスレーブのデータベースにインポートし、そこでは
dump_file
マスタの
mysqldump
を使用して生成したファイルの名前で、db_name
はレプリケートされるデータベースの名前です。
shellS
>mysql -u root -p
db_name
<dump_file
mysqldump で使用する完全なオプションのリストは、項7.12. 「mysqldump — データベースバックアッププログラム」 を参照してください。
このようにデータをスレーブにコピーするには、スレーブがコマンドラインで
--skip-slave-start
オプションで起動していることを確認するかあるいは
skip-slave-start
をスレーブの
my.cnf
ファイルに入れてマスタへの接続させないようにしてすべてのデータがロードされる前にレプリケーションを始めます。データのローディングが完了したら、次の
2 項で説明するステップに従います。
レプリケーション マスタとしての各 MySQL
サーバーが一意のサーバーID
で設定されているか、バイナリのロギングが有効になっているか、行フォーマットを使用しているか確認します。(
項5.1.2. 「レプリケーション フォーマット」
参照。)これらのオプションはマスタのmysql
プロセスを実行する際にマスタのサーバー
my.cnf
ファイル、あるいはコマンドラインのいずれかに設定できます。後者のオプションの関する情報については、項14.10.6. 「レプリケーションの開始 (シングル レプリケーション
チャネル)」
を参照してください。