MySQL Error_code: 1032/1062

MySQL参数:slave_exec_mode

该参数与MySQL复制有关,它是一个动态修改的变量。默认为STRICT MODE(严格模式),可选值为IDEMPOTENT MODE(幂等模式)。
设置为IDEMPOTENT模式可以防止从库出现1032(从库上不存在的键)和1062(需要重复键、主键或唯一键)的错误。该模式只在ROW binlog模式下生效,在STATEMENT 模式的binlog模式中无效。

参数对比:
1.sql_slave_skip_counter = N
2.slave-skip-errors = 1032,1062
3.MySQL参数:slave_exec_mode = STRICT/IDEMPOTENT

set gobal sql_slave_skip_counter = N ,N 意味着跳过N个事务,一个事务中可能包含多个事件导致数据丢失

slave-skip-errors = 1032,1062 需要重启数据库,从节点会自动跳过整个事务并且不会记录任何错误

slave_exec_mode = IDEMPOTENT 会自动跳过错误的event而非整个事务,同时会记录自动跳过的event记录到mysql error log 中

注意:
设置slave_exec_mode = 'IDEMPOTENT' 模式无法解决DDL类型的错误,只能解决从节点上应用主节点binlog时的主键冲突或者无主键错误,只能在binlog_format为ROW的模式下使用,并且只能在1032和1062的幂等模式下使用。

posted @ 2024-04-23 11:33  __Yoon  阅读(90)  评论(0编辑  收藏  举报