mysql主従レプリケーションの原理とトランザクションベースのReplication
2218 ワード
げんり
プライマリサーバ上の変更は、自分のI/O tread(I/Oスレッド)によってバイナリログBinary logに保存されます.
サーバI/OスレッドからマスタライブラリのBinary logを要求し、得られたBinary logログをrealy log(中継ログ)ファイルに書き込む.
サーバSQLスレッドからrelay logファイルのログを読み込み、具体的な操作に解析して、主従の操作が一致し、最終的なデータが一致するようにします.
操作手順
1.マスターライブラリの構成
2.サーバからの構成メインライブラリのライブラリテーブルをライブラリから にインポートする.プライマリ・ライブラリ:スレーブ・ライブラリ認可
5.マスター同期の構成
6.ステータスの表示
プライマリサーバ上の変更は、自分のI/O tread(I/Oスレッド)によってバイナリログBinary logに保存されます.
サーバI/OスレッドからマスタライブラリのBinary logを要求し、得られたBinary logログをrealy log(中継ログ)ファイルに書き込む.
サーバSQLスレッドからrelay logファイルのログを読み込み、具体的な操作に解析して、主従の操作が一致し、最終的なデータが一致するようにします.
操作手順
1.マスターライブラリの構成
//
[root@master ~]# vim /etc/my.cnf
[mysqld]
log-bin=/var/log/mysql/mysql-bin
server-id=1
gtid_mode=ON
enforce_gtid_consistency=1
[root@master ~]# systemctl restart mysqld
2.サーバからの構成
//
[root@slave ~]# vim /etc/my.cnf
[mysqld]
server-id=2
gtid_mode=ON
enforce_gtid_consistency=1
[root@slave ~]# systemctl restart mysqld
//
[root@master]# mysqldump -uroot -pmiacis --all-databases --master-data=1 > ./all.sql
[root@master]# scp ./all.sql 192.168.223.201:/root
//
[root@slave ~]# mysql -uroot -pmiacis < ./all.sql
[root@slave ~]# mysql -uroot -pmiacis //
mysql> show databases;
//
mysql> create user 'repl'@'%' identified by '123';
mysql> grant replication slave on *.* to 'repl'@'%';
//
[root@slave ~]# mysql -urepl -p123 -h 192.168.223.101
5.マスター同期の構成
[root@slave ~]# mysql -uroot -pmiacis
mysql> change master to
master_host='172.16.153.10',
master_user='repl',
master_password='123',
master_auto_position=1;
mysql> start slave;
6.ステータスの表示
mysql> show slave status\G
*************************** 1. row ***************************
Slave_IO_State: Waiting for master to send event
Master_Host: 192.168.223.101
Master_User: repl
Master_Port: 3306
Connect_Retry: 60
Master_Log_File: mysql-bin.000002
Read_Master_Log_Pos: 194
Relay_Log_File: compute1-relay-bin.000002
Relay_Log_Pos: 367
Relay_Master_Log_File: mysql-bin.000002
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
......