mysql中slave_exec_mode如何设置自动跳过同步复制错误
发布时间:2022-01-11 13:27:23 所属栏目:MySql教程 来源:互联网
导读:小编给大家分享一下mysql中slave_exec_mode如何设置自动跳过同步复制错误,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧! slave_exec_mode设置可以跳过1032(记录没有找到
小编给大家分享一下mysql中slave_exec_mode如何设置自动跳过同步复制错误,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧! slave_exec_mode设置可以跳过1032(记录没有找到)和1062(主键重复)错误,并记录到错误日志中。 slave_exec_mode和slave_skip_errors作用是一样的,只是slave_exec_mode可以在线动态设置。slave_skip_errors必须添加到配置文件中,重启生效。 备库 mysql> select * from testdb1.student; +------+------+-------+-------+ | id | name | class | score | +------+------+-------+-------+ | 1 | a | 1 | 45 | | 2 | b | 1 | 46 | | 3 | c | 2 | 89 | | 4 | d | 2 | 90 | | 5 | e | 3 | 67 | | 6 | f | 3 | 87 | | 7 | g | 4 | 77 | | 8 | h | 4 | 91 | +------+------+-------+-------+ 8 rows in set (0.00 sec) mysql> delete from testdb1.student where id >5; Query OK, 3 rows affected (0.00 sec) mysql> commit; Query OK, 0 rows affected (0.00 sec) #修改参数之前 主库master mysql> delete from testdb1.student where id >7; Query OK, 1 row affected (0.00 sec) 备库查看状态 mysql> show slave statusG *************************** 1. row *************************** Slave_IO_State: Waiting for master to send event Master_Host: 192.168.56.91 Master_User: rep Master_Port: 3306 Connect_Retry: 60 Master_Log_File: ray-bin.000008 Read_Master_Log_Pos: 1272 Relay_Log_File: ray-relay-bin.000003 Relay_Log_Pos: 1226 Relay_Master_Log_File: ray-bin.000008 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 Delete_rows event on table testdb1.student; Can't find record in 'student', Error_code: 1032; handler error HA_ERR_END_OF_FILE; the event's master log ray-bin.000008, end_log_pos 1241 Skip_Counter: 0 Exec_Master_Log_Pos: 1065 Relay_Log_Space: 1957 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 Delete_rows event on table testdb1.student; Can't find record in 'student', Error_code: 1032; handler error HA_ERR_END_OF_FILE; the event's master log ray-bin.000008, end_log_pos 1241 Replicate_Ignore_Server_Ids: Master_Server_Id: 2 Master_UUID: 840f94e0-8ea0-11e5-af92-080027a94012 Master_Info_File: /data/3307/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: 151126 12:42:37 Master_SSL_Crl: Master_SSL_Crlpath: Retrieved_Gtid_Set: Executed_Gtid_Set: Auto_Position: 0 1 row in set (0.00 sec) mysql> stop slave; Query OK, 0 rows affected (0.78 sec) mysql> set global sql_slave_skip_counter=1; Query OK, 0 rows affected (0.01 sec) mysql> start slave; Query OK, 0 rows affected (0.33 sec) #修改备库参数 mysql> show variables like '%slave_exec_mode%'; +-----------------+--------+ | Variable_name | Value | +-----------------+--------+ | slave_exec_mode | STRICT | +-----------------+--------+ 1 row in set (0.00 sec) mysql> set global slave_exec_mode=idempotent; Query OK, 0 rows affected (0.00 sec) mysql> show variables like '%slave_exec_mode%'; +-----------------+------------+ | Variable_name | Value | +-----------------+------------+ | slave_exec_mode | IDEMPOTENT | +-----------------+------------+ 1 row in set (0.00 sec) 主库删除数据 mysql> delete from testdb1.student where id >6; Query OK, 1 row affected (0.01 sec) mysql> commit; Query OK, 0 rows affected (0.00 sec) 备库查看状态和错误日志 mysql> show slave statusG *************************** 1. row *************************** Slave_IO_State: Waiting for master to send event Master_Host: 192.168.56.91 Master_User: rep Master_Port: 3306 Connect_Retry: 60 Master_Log_File: ray-bin.000008 Read_Master_Log_Pos: 1479 Relay_Log_File: ray-relay-bin.000004 Relay_Log_Pos: 488 Relay_Master_Log_File: ray-bin.000008 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: 1479 Relay_Log_Space: 1972 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: 2 Master_UUID: 840f94e0-8ea0-11e5-af92-080027a94012 Master_Info_File: /data/3307/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) [root@ray ~]# tail -20f /data/3307/data/mysql_ray.err 2015-11-26 12:50:29 12127 [Warning] Slave SQL: Could not execute Delete_rows event on table testdb1.student; Can't find record in 'student', Error_code: 1032; handler error HA_ERR_END_OF_FILE; the event's master log ray-bin.000008, end_log_pos 1655, Error_code: 1032 注:pos可能对不上,因为截取的问题,不必在意。 以上是“mysql中slave_exec_mode如何设置自动跳过同步复制错误”这篇文章的所有内容,感谢各位的阅读! (编辑:广州站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |