MySQLレプリケーションアーキテクチャのデュアルプライマリモデル
5830 ワード
MySQLレプリケーションアーキテクチャのデュアルプライマリモデル
デュアルマスターモデルの特性両ノードは互いに主従している:各ノードはそれぞれbinlog(バイナリログ)とrelay log(中継ログ) を開く.デュアルプライマリモデルは、2つのデータベースのデータが一致しない を招きやすい.デュアルプライマリ・モデルでは、プライマリ・キーまたはユニーク・キーとしてのフィールドの値タイプにINCREMENT(自己成長)が設定されている場合、2つのデータベースの同期時にプライマリ・キーまたはユニーク・キーが競合する可能性があります.これを回避するために、各ノードに対して自己成長値の開始オフセットと成長ステップ を再定義します.
デュアルプライマリモデルの実装手順最初のノードの構成 を変更する.第2のノードの構成 を変更する.両ノードにそれぞれレプリケーション権限を持つアカウントを作成 は、第1のノード(172.16.5.9)上で を実行する.
は、第2のノード(172.16.5.10)上で を実行する.バイナリ・ログの状況を2つのノードで個別に表示 は、第1のノード にある.
は、第2のノード にある.相手が自分のメインノードである情報を設定する は、第1のノード にある.
は、第2のノード にある. IOスレッドとSQLスレッドをそれぞれ起動し、情報を表示 は、第1のノード にある.
は、第2のノード にある.は、2つのノードでそれぞれデータを修正し、デュアルプライマリモデルの効果 を検証する.
コピー時に注意すべき問題:
デュアルマスターモデルの特性
デュアルプライマリモデルの実装手順
vim /etc/my.cnf.d/server.cnf
[mysqld]
innodb_file_per_table=ON
skip_name_resolve=ON
# serverid,
server_id=1
log_bin=master-log
relay_log=relay-log
# id
auto_increment_offset=1
auto_increment_increment=2
[mysqld]
innodb_file_per_table=ON
skip_name_resolve=ON
server_id=2
log_bin=master-log
relay_log=relay-log
# id
auto_increment_offset=2
auto_increment_increment=2
GRANT REPLICATION CLIENT,REPLICATION SLAVE ON *.* TO 'repluser'@'172.16.50.10' IDENTIFIED BY 'replpass';
FLUSH PRIVILEGES;
GRANT REPLICATION CLIENT,REPLICATION SLAVE ON *.* TO 'repluser'@'172.16.50.9' IDENTIFIED BY 'replpass';
FLUSH PRIVILEGES;
SHOW MASTER STATUS;
+-------------------+----------+--------------+------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+-------------------+----------+--------------+------------------+
| master-log.000003 | 507 | | |
+-------------------+----------+--------------+------------------+
SHOW MASTER STATUS;
+-------------------+----------+--------------+------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+-------------------+----------+--------------+------------------+
| master-log.000003 | 507 | | |
+-------------------+----------+--------------+------------------+
CHANGE MASTER TO MASTER_HOST='172.16.50.9',MASTER_USER='repluser',MASTER_PASSWORD='replpass',MASTER_PORT=3306,MASTER_LOG_FILE='master-log.000003',MASTER_LOG_POS=507;
CHANGE MASTER TO MASTER_HOST='172.16.50.10',MASTER_USER='repluser',MASTER_PASSWORD='replpass',MASTER_PORT=3306,MASTER_LOG_FILE='master-log.000003',MASTER_LOG_POS=507;
START SLAVE;
SHOW SLAVE STATUS\G;
START SLAVE;
SHOW SLAVE STATUS\G;
コピー時に注意すべき問題:
1、 “ ”;
read_only, SUPER ;
:
mysql> FLUSH TABLES WITH READ LOCK;
2、
master :
sync_binlog = ON
InnoDB :
innodb_flush_logs_at_trx_commit=ON
innodb_support_xa=ON
3、
4、 :
sync_master_info=ON
sync_relay_log_info=ON