slave_exec_mode参数对主从复制的影响

主从复制中常会遇到的问题就是1062主键重复、1032 slave上相关记录没找到

如果在读写分离的架构中,slave同步失败会对业务造成很大的影响的(比如主写入了一条数据,从上无法读取到这样对业务影响很大)

主从同步主要涉及一个参数: slave_exec_mode

set global slave_exec_mode=‘IDEMPOTENT‘;  //幂等模式
set global slave_exec_mode=‘STRICT‘;  //严格模式

slave_exec_mode参数可用来自动处理同步复制错误:

场景1: 

# slave上执行
> set global slave_exec_mode=‘IDEMPOTENT‘;  幂等模式 (默认是STRICT严格模式)
> stop slave;
> start slave;

slave_exec_mode 主要是控制mysql 主从复制中 insert 出现 duplicate-key, update 出现 no-key-found  情况下的处理方式做控制。

#idempotent(幂等) 模式影响:
 主机      备机
insert     duplicate-key  slave 执行的是replace into 
update  no-key-found   slave 不做任何处理

场景2:

#在slave上执行
stop slave;
set global slave_exec_mode=strict
start slave;

#stric(严格) 模式影响
 主机      备机
insert    duplicate-key   slave  报duplicate-key errors
update  no-key-found   slave 报no-key-found  error

时间: 2024-10-08 01:02:37

slave_exec_mode参数对主从复制的影响的相关文章

MySQL 的slave_exec_mode参数的用处

主从复制中常会遇到的问题就是1062主键重复.1023slave上相关记录没找到. 如果在读写分离的架构中,slave同步失败会对业务造成很大的影响的(比如用户在master上发了帖子,阅览跑到了slave上,找不到了刚才的帖子了). 因此,我们很有必要对主从复制做些监控,做些自动化的处理. 这里要涉及到MySQL的一个参数slave_exec_mode slave_exec_mode参数可用来自动处理同步复制错误: # slave上执行 > set global slave_exec_mode

MySQL slave_exec_mode参数的作用

slave_exec_mode=IDEMPOTENT在MySQL复制环境中是个很有用的参数:只要在备机运行set global slave_exec_mode=IDEMPOTENT,备机的sql thread就运行在冥等模式下,可以让备机在insert主键.唯一键冲突,update.delete值未找到错误发生时不断开复制而保持冥等性(当即生效,连slave的sql线程都不用重启哟);而类似sql_slave_skip_counter=N和slave-skip-errors = N这样的粗暴跳过

参数对二项分布的影响

# --*-- coding:utf-8 --*-- import distribution import matplotlib.pyplot as plt from matplotlib.ticker import MultipleLocator # 二项分布举例:将一个硬币抛三次,用随机变量X记录在三次抛中正面向上的次数,将X的所有可能取值对应的概率算出来 x = range(0, 101) P_1 = 0.2 p_1 = [distribution.binomial(len(x) - 1,

025:sysbench压测-innodb_flush_log_at_trx_commit,sync_binlog参数对性能的影响

sysbench压测-innodb_flush_log_at_trx_commit,sync_binlog参数对性能的影响 [TOC] 一.OLTP测试前准备 基本信息: 主机信息 CPU 内存 硬盘 系统版本 MySQL版本 sysbench版本 Intel(R) Core(TM) i7-7500U CPU @ 2.70GHz *2 2G 虚拟机硬盘 CentOS release 6.9 (Final) 5.7.18 1.1.0-76 sysbench 目录(/software/sysbenc

mysqldump --master-data参数实现主从复制快速部署

mysqldump --help --master-data[=#]   This causes the binary log position and filename to be                       appended to the output. If equal to 1, will print it as a                       CHANGE MASTER command; if equal to 2, that command will

Python——内部参数对外部实参的影响

无论函数传递的参数的可变还是不可变,只要针对参数使用赋值语句,会在函数内部修改局部变量的引用,不会影响到外部变量的引用,而如果传递的参数是可变类型,在函数内部使用方法修改了数据的内容,同样会影响到外部的数据. def demo(num, num_list): print("函数内部") num = 99 num_list = [33, 66, 99] print(num, num_list) gl_num = 9 gl_list = [3, 6, 9] demo(gl_num, gl_

[原创]MySQL innodb_rollback_on_timeout参数对锁的影响

环境:Server version:         5.6.21-log MySQL Community Server (GPL) 前提提要: innodb_rollback_on_timeout是啥作用? 答:事务B在锁等待超时后是回滚事务内所有的statement还是最后一条语句: 0表示rollback最后一条语句,默认值:有点坑 1表示回滚事务B内所有的statements: 此参数是只读参数,需在my.cnf中配置,并且重启生效: 注意:回滚statements后不自动commit或

在线修改主从复制选项

前言:? MySQL最常用的架构就是主从复制了,其实主从复制有很多选项,特别是在从库端,我们可以设置复制过滤,比如说忽略某张表或某个库.这些过滤选项都是可以在线修改而不用重启的.原来对这块了解不多,最近看了下相关资料,个人觉得这个功能还是很方便的,本篇文章会将这块内容分享给大家. 1.复制过滤参数介绍 首先我们要了解设置复制过滤的不同参数.复制过滤是在从库端设置的,可以只复制某些库或某些表,也可以忽略复制某些库或某些表.这些都是由不同参数控制的,下面简单介绍下不同参数的作用. REPLICATE

Swift 函数调用到底写不写参数名

最近真正开始学 Swift,在调用函数的时候遇到一个问题:到底写不写函数名? 我们来看两个个例子: // 1 func test(a: Int, b: Int) ->Int { return a + b } test(a: 1, b: 1) // (A) test(1, b:1) // (B) //2 class Test { var name: String var age: Int init(name: String, age: Int) { self.name = name self.ag