MySQLでマルチスレッドレプリケーションを有効にする

MySQLのマルチスレッドレプリケーション機能を有効にするには、以下の手順に従う必要があります。

  1. MySQLの設定ファイルmy.cnfを編集します。[mysqld]セクションを編集するか[mysqld]セクションを作成し、以下の設定を追加または変更します。
server-id = 1
log-bin = mysql-bin
binlog_format = ROW

このうちserver-idはサーバーの一意な識別子であり1から4294967295の間の値を選択できます。 log-binではバイナリログのファイル名プレフィックスを指定でき、カスタマイズできます。 binlog_formatではバイナリログのフォーマットをROWに設定し、これがマルチスレッドレプリケーションを有効にする前提条件です。

  1. MySQLサービスを再起動します。設定ファイルを保存して閉じたら、構成を有効にするためにMySQLサービスを再起動する必要があります。
  2. レプリケーションアカウントと権限を作成する。MySQLサーバにログインして、以下のコマンドを実行してレプリケーションアカウントを作成し、レプリケーション権限を与える。
CREATE USER 'replicator'@'%' IDENTIFIED BY 'password';
GRANT REPLICATION SLAVE ON *.* TO 'replicator'@'%';

replicator とはアカウント名のコピーで、password とはパスワードのことです。必要に応じて修正できます。

  1. マスターデータベースのバックアップを作成し、バイナリログファイルの位置を取得します。マスターデータベースで以下のコマンドを実行してデータベースのバックアップを作成し、バックアップ時のバイナリログファイルの位置を記録します。
FLUSH TABLES WITH READ LOCK;
SHOW MASTER STATUS;

FileとPositionフィールドの結果の値をログに記録します。

  1. データベースから配置し、レプリケーションを開始します。レプリケーションを構成するには、セカンダリデータベース上で以下を実行してください。
CHANGE MASTER TO
MASTER_HOST='master_ip',
MASTER_USER='replicator',
MASTER_PASSWORD='password',
MASTER_LOG_FILE='master_log_file_name',
MASTER_LOG_POS=master_log_position;

ここで、master_ip は主データベースの IP アドレス、replicator と password は手順 3 で作成したレプリケーションアカウントのユーザー名とパスワード、master_log_file_name と master_log_position は手順 4 で記録した主データベースのバイナリログファイルの位置です。

  1. レプリケーションを開始する。データベースで次のコマンドを実行してレプリケーションを開始します:
START SLAVE;

設定が完了すると、MySQL のマルチスレッドレプリケーション機能が有効になります。データベースは自動的に主データベースからデータを複製し、SHOW SLAVE STATUS コマンドを使用してレプリケーションの状態を確認できます。

bannerAds