mysql复制出错与sql_slave_skip_counter
2015-03-11 16:42
537 查看
当源数据不一样或某些情况下,mysql复制会出错。
双主A机
双主B机
此时A机会出错
可以通过设置sql_slave_skip_counter参数并重启slave跳过这个错误
而slave状态已改为正常
相关数据处理好就可以了
双主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>
相关数据处理好就可以了
相关文章推荐
- mysql如何使用延迟复制拯救你的误操作(及sql_slave_skip_counter的含义)
- MySQL小误区:关于set global sql_slave_skip_counter=N 命令的一些点
- MySQL SET GLOBAL SQL_SLAVE_SKIP_COUNTER = N 的解释
- mysql 同步GLOBAL sql_slave_skip_counter解释
- MySQL 之 set global sql_slave_skip_counter=N 命令
- sql_slave_skip_counter 介绍 从库不同步时、出错时
- mysql 同步GLOBAL sql_slave_skip_counter解释
- MySQL的一次错误处理 SQL_SLAVE_SKIP_COUNTER
- mysql复制出错----Slave_SQL_Running: No
- 关于 mysql SET GLOBAL sql_slave_skip_counter = N 的一点记录
- mysql主从之slave-skip-errors和sql_slave_skip_counter
- mysql 跳过同步错误sql_slave_skip_counter
- MySQL小误区:关于set global sql_slave_skip_counter=N 命令的一些点
- MySQL小误区:关于set global sql_slave_skip_counter=N 命令的一些点
- mysql小误区关于set global sql_slave_skip_counter=N命令
- MySQL参数sql_slave_skip_counter和slave_exec_mode进一步认识
- MySQL小误区:关于set global sql_slave_skip_counter=N 命令的一些点
- MySQL sql_slave_skip_counter
- MySQL小误区:关于set global sql_slave_skip_counter=N 命令的一些点
- mysql 小误区 关于set global sql_slave_skip_counter=N 命令的迷惑