场景:multi-source replication(多源复制);2主1从;
错误:更改master1表结构成功;更改master2表结构报错
解决方案:跳过错误的GTID
mysql> show slave status for channel 'master2'\G;
*************************** 2. row ***************************
Slave_IO_State: Waiting for master to send event
Master_Host: 127.0.0.1
Master_User: msandbox
Master_Port: 14520
Connect_Retry: 60
Master_Log_File: mysql-bin.000001
Read_Master_Log_Pos: 921
Relay_Log_File: mysql-relay-master2.000003
Relay_Log_Pos: 454
Relay_Master_Log_File: mysql-bin.000001
Slave_IO_Running: Yes
Slave_SQL_Running: No
Replicate_Do_DB:
Replicate_Ignore_DB:
Replicate_Do_Table:
Replicate_Ignore_Table:
Replicate_Wild_Do_Table:
Replicate_Wild_Ignore_Table:
Last_Errno: 1060
Last_Error: Error 'Duplicate column name 'gender'' on query. Default database: 'test'. Query: 'alter table `user` add `gender` smallint null default null after `age`'
Skip_Counter: 0
Exec_Master_Log_Pos: 706
Relay_Log_Space: 2156
Until_Condition: None
Until_Log_File:
Until_Log_Pos: 0
Master_SSL_Allowed: No
Master_SSL_CA_File:
Master_SSL_CA_Path:
Master_SSL_Cert:
Master_SSL_Cipher:
Master_SSL_Key:
Seconds_Behind_Master: NULL
Master_SSL_Verify_Server_Cert: No
Last_IO_Errno: 0
Last_IO_Error:
Last_SQL_Errno: 1060
Last_SQL_Error: Error 'Duplicate column name 'gender'' on query. Default database: 'test'. Query: 'alter table `user` add `gender` smallint null default null after `age`'
Replicate_Ignore_Server_Ids:
Master_Server_Id: 102
Master_UUID: 00014520-2222-2222-2222-222222222222
Master_Info_File: mysql.slave_master_info
SQL_Delay: 0
SQL_Remaining_Delay: NULL
Slave_SQL_Running_State:
Master_Retry_Count: 86400
Master_Bind:
Last_IO_Error_Timestamp:
Last_SQL_Error_Timestamp: 170704 16:52:38
Master_SSL_Crl:
Master_SSL_Crlpath:
Retrieved_Gtid_Set: 00014520-2222-2222-2222-222222222222:1-3
Executed_Gtid_Set: 00014519-1111-1111-1111-111111111111:9-12,
00014520-2222-2222-2222-222222222222:1-2
Auto_Position: 1
Replicate_Rewrite_DB:
Channel_Name: master2
Master_TLS_Version:
master2事务1-3,执行到1-2。
所以,跳过事务3;
node3 [localhost] {msandbox} (test) > stop slave; Query OK, 0 rows affected (0.05 sec)
node3 [localhost] {msandbox} (test) > set gtid_next="00014520-2222-2222-2222-222222222222:3";
Query OK, 0 rows affected (0.00 sec)
node3 [localhost] {msandbox} (test) > begin;commit;
Query OK, 0 rows affected (0.00 sec)
Query OK, 0 rows affected (0.01 sec)
node3 [localhost] {msandbox} (test) > set gtid_next = 'AUTOMATIC';
Query OK, 0 rows affected (0.00 sec)
node3 [localhost] {msandbox} (test) > start slave;
Query OK, 0 rows affected (0.03 sec)
node3 [localhost] {msandbox} (test) > show slave status\G;
有问题或更好解决方案email:mantou5188@gmail.com