您的位置:首页 > 数据库 > MySQL

mysql复制出错与sql_slave_skip_counter

2015-03-11 16:42 537 查看
当源数据不一样或某些情况下,mysql复制会出错。

双主A机

mysql> select * from test1;
+--------------------------------------+
| uid                                  |
+--------------------------------------+
| d8426457-c725-11e4-94c6-0800270964a5 |
+--------------------------------------+
1 row in set (0.01 sec)


双主B机

mysql> select * from test1;
+--------------------------------------+
| uid                                  |
+--------------------------------------+
| 4c27d395-c701-11e4-8c2a-08002796172a |
+--------------------------------------+
1 row in set (0.00 sec)

mysql> update test1 set uid = uuid();
Query OK, 1 row affected (0.04 sec)
Rows matched: 1  Changed: 1  Warnings: 0


此时A机会出错

mysql> show slave status \G
*************************** 1. row ***************************
Slave_IO_State: Waiting for master to send event
Master_Host: 192.168.56.3
Master_User: repl
Master_Port: 3306
Connect_Retry: 60
Master_Log_File: mysql-bin.000030
Read_Master_Log_Pos: 3977
Relay_Log_File: mysql34-relay-bin.000008
Relay_Log_Pos: 283
Relay_Master_Log_File: mysql-bin.000030
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: 1032
Last_Error: Could not execute Update_rows event on table test.test1; Can't find record in 'test1', Error_code: 1032; handler error HA_ERR_END_OF_FILE; the event's master log mysql-bin.000030, end_log_pos 3946
Skip_Counter: 0
Exec_Master_Log_Pos: 3712
Relay_Log_Space: 886
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: 1032
Last_SQL_Error: Could not execute Update_rows event on table test.test1; Can't find record in 'test1', Error_code: 1032; handler error HA_ERR_END_OF_FILE; the event's master log mysql-bin.000030, end_log_pos 3946
Replicate_Ignore_Server_Ids:
Master_Server_Id: 23306
Master_UUID: 64f4a34e-9258-11e4-827c-08002796172a
Master_Info_File: /data/mysql/user_3306/data/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: 150310 09:10:21
Master_SSL_Crl:
Master_SSL_Crlpath:
Retrieved_Gtid_Set:
Executed_Gtid_Set:
Auto_Position: 0
1 row in set (0.00 sec)


可以通过设置sql_slave_skip_counter参数并重启slave跳过这个错误

mysql> set global sql_slave_skip_counter=1;
Query OK, 0 rows affected (0.00 sec)

mysql> stop slave;
Query OK, 0 rows affected (0.04 sec)

mysql> start slave;
Query OK, 0 rows affected (0.02 sec)
重启后该参数值仍为0

mysql> show variables like '%slave_skip%';
+------------------------+-------+
| Variable_name          | Value |
+------------------------+-------+
| slave_skip_errors      | OFF   |
| sql_slave_skip_counter | 0     |
+------------------------+-------+
2 rows in set (0.00 sec)


而slave状态已改为正常

mysql> show slave status \G
*************************** 1. row ***************************
Slave_IO_State: Waiting for master to send event
Master_Host: 192.168.56.3
Master_User: repl
Master_Port: 3306
Connect_Retry: 60
Master_Log_File: mysql-bin.000030
Read_Master_Log_Pos: 3977
Relay_Log_File: mysql34-relay-bin.000009
Relay_Log_Pos: 283
Relay_Master_Log_File: mysql-bin.000030
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
Replicate_Do_DB:
Replicate_Ignore_DB:
Replicate_Do_Table:
Replicate_Ignore_Table:
Replicate_Wild_Do_Table:
Replicate_Wild_Ignore_Table:
Last_Errno: 0
Last_Error:
Skip_Counter: 0
Exec_Master_Log_Pos: 3977
Relay_Log_Space: 886
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: 0
Master_SSL_Verify_Server_Cert: No
Last_IO_Errno: 0
Last_IO_Error:
Last_SQL_Errno: 0
Last_SQL_Error:
Replicate_Ignore_Server_Ids:
Master_Server_Id: 23306
Master_UUID: 64f4a34e-9258-11e4-827c-08002796172a
Master_Info_File: /data/mysql/user_3306/data/master.info
SQL_Delay: 0
SQL_Remaining_Delay: NULL
Slave_SQL_Running_State: Slave has read all relay log; waiting for the slave I/O thread to update it
Master_Retry_Count: 86400
Master_Bind:
Last_IO_Error_Timestamp:
Last_SQL_Error_Timestamp:
Master_SSL_Crl:
Master_SSL_Crlpath:
Retrieved_Gtid_Set:
Executed_Gtid_Set:
Auto_Position: 0
1 row in set (0.00 sec)

mysql>


相关数据处理好就可以了
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: