Mariadb 10 GTIDレプリケーションテスト

3981 ワード

同じマシン上の3つのインスタンス、3307はmaser、2つのmariadbインスタンスを新造し、ポートはそれぞれ3309と3310であり、レプリケーション関係の構築を開始し、バージョンはmariadb 10.0.10である.
3307エクスポート:mysqldump--master-data=2インポート:mysql-u-p--socket=/tmp/mysql 3309.sock mysql -u -p --socket=/tmp/mysql3310.sock
関係をコピーする前に、
[email protected](test_3309) : (none) 05:20:31>select @@global.gtid_current_pos;
@@global.gtid_current_pos
0-501113309-31329
1 row in set (0.02 sec)
[email protected](test_3309) : (none) 05:21:10>select @@global.gtid_current_pos;
@@global.gtid_current_pos
0-501113309-32311
1 row in set (0.00 sec)
[email protected](test_3309) : (none) 05:21:33>SELECT @@GLOBAL.gtid_slave_pos;
@@GLOBAL.gtid_slave_pos
1 row in set (0.00 sec)
@global.gtid_current_posは、データの書き込みが続くため、値が変化し、@@GLOBAL.gtid_slave_posはコピー関係がまだ構築されていないため、現在は空の値である.
mysqldumpバックアップファイルのchange masterコメント:--CHANGE MASTER TO MASTER_LOG_FILE='mysql-bin.000052', MASTER_LOG_POS=394894368;
3309ポートは元のレプリケーション・モードを採用しています.
change master to master_host='192.168.50.111', MASTER_PORT=3307,master_user='', master_password='', master_log_file='mysql-bin.000052', master_log_pos=394894368;
start slave

[email protected](test_3309) : (none) 07:22:21>select @@global.gtid_current_pos;
@@global.gtid_current_pos
0-501113307-7227948
1 row in set (0.00 sec)
[email protected](test_3309) : (none) 07:22:48>SELECT @@GLOBAL.gtid_slave_pos;
@@GLOBAL.gtid_slave_pos
0-501113307-7227956
+-------------------------------+@GLOBALが見えます.gtid_slave_posは、従来またはgtidモードでコピーするかどうかにかかわらず、すでに値がある.
3309従来モードからgtidモードコピーに変更:
STOP SLAVE;CHANGE MASTER TO master_host="192.168.50.111", master_port=3307, master_user='', master_password='', master_use_gtid=current_pos;START SLAVE;
show slave status G追加内容:
Master_Server_Id: 501113307Master_SSL_Crl: Master_SSL_Crlpath: Using_Gtid: Current_Pos Gtid_IO_Pos: 0-501113307-7227969
3310ポート、直接GTIDモードの複製を採用して、方法は以下の通りです:
メインライブラリで(3307)実行:SELECT BINLOG_GTID_POS("mysql-bin.000052", 394894368);
BINLOG_GTID_POS("mysql-bin.000052", 394894368)
0-501113307-7227451
--GTID位置を取得
ライブラリから実行:SET GLOBAL gtid_slave_pos = "0-501113307-7227451"; -- BINLOG_GTID_POS関数で得られた位置CHANGE MASTER TO master_host="192.168.50.111", master_port=3307, master_user='', master_password='', master_use_gtid=slave_pos;START SLAVE;
show slave status GMaster_Server_Id: 501113307Master_SSL_Crl: Master_SSL_Crlpath: Using_Gtid: Slave_PosGtid_IO_Pos: 0-501113307-7228013
マスター実験を切り替え、3310ポートのslaveのマスターを3307ポートから3309ポートに切り替えます
STOP SLAVE;CHANGE MASTER TO master_host="192.168.50.111", master_port=3309START SLAVE;
show slave status GSlave_IO_State: Waiting for master to send eventMaster_Host: 192.168.50.111Master_User: repMaster_Port: 3309Master_Server_Id: 501113309Master_SSL_Crl: Master_SSL_Crlpath: Using_Gtid: Slave_PosGtid_IO_Pos:0-501113307-7280903--3309,gtidのserver-idに切り替わったけど、3307の、501113307
再びカットして、対応するmasterを3307ポートに向けます
STOP SLAVE;CHANGE MASTER TO master_host="192.168.50.111", master_port=3307START SLAVE;
[email protected](test_3310) : (none) 03:29:42>show slave status G 1. row **
           Slave_IO_State: Waiting for master to send event
              Master_Host: 192.168.50.111
              Master_User: rep
              Master_Port: 3307
            Connect_Retry: 60
          Master_Log_File: mysql-bin.000052       -- 3307  
      Read_Master_Log_Pos: 425706839
        Master_Server_Id:  501113307
           Master_SSL_Crl: 
       Master_SSL_Crlpath: 
               Using_Gtid: Slave_Pos
              Gtid_IO_Pos: 0-501113307-7281435     GTID , , 
              

3つのグローバル変数:
select @@global.gtid_slave_pos, @@global.gtid_binlog_pos,@@global.gtid_current_pos;