Network Security Internet Technology Development Database Servers Mobile Phone Android Software Apple Software Computer Software News IT Information

In addition to Weibo, there is also WeChat

Please pay attention

WeChat public account

Shulou

How to set slave_exec_mode to automatically skip synchronous replication errors in mysql

2025-02-24 Update From: SLTechnology News&Howtos shulou NAV: SLTechnology News&Howtos > Database >

Share

Shulou(Shulou.com)05/31 Report--

Editor to share with you how to set slave_exec_mode in mysql to automatically skip synchronization replication errors, I believe most people do not know much about it, so share this article for your reference, I hope you will learn a lot after reading this article, let's go to know it!

The slave_exec_mode setting can skip 1032 (record not found) and 1062 (duplicate primary key) errors and log them in the error log.

The function of slave_exec_mode is the same as that of slave_skip_errors, except that slave_exec_mode can be dynamically set online. Slave_skip_errors must be added to the configuration file for the restart to take effect.

Prepare the library

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)

# before modifying parameters

Main library master

Mysql > delete from testdb1.student where id > 7

Query OK, 1 row affected (0.00 sec)

Standby database view status

Mysql > show slave status\ G

* * 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)

# modify slave database parameters

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)

The main database deletes data

Mysql > delete from testdb1.student where id > 6

Query OK, 1 row affected (0.01sec)

Mysql > commit

Query OK, 0 rows affected (0.00 sec)

Prepare the database to view status and error logs

Mysql > show slave status\ G

* * 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

Note: pos may not match, because the problem of interception, do not care.

The above is all the contents of the article "how to set slave_exec_mode in mysql to automatically skip synchronous replication errors". Thank you for reading! I believe we all have a certain understanding, hope to share the content to help you, if you want to learn more knowledge, welcome to follow the industry information channel!

Welcome to subscribe "Shulou Technology Information " to get latest news, interesting things and hot topics in the IT industry, and controls the hottest and latest Internet news, technology news and IT industry trends.

Views: 0

*The comments in the above article only represent the author's personal views and do not represent the views and positions of this website. If you have more insights, please feel free to contribute and share.

Share To

Database

Wechat

© 2024 shulou.com SLNews company. All rights reserved.

12
Report