运维驿站MongoDB极简教程 · Mongo · NoSQL

mysql5.7 设置主从半同步模式

2022-12-27  本文已影响0人  数据老菜鸟

1.安装半同步插件

mysql5.7 gz解压后在plugin目录下已经存在 半同步的so文件了

/mysql/lib/plugin目录下

主库安装为 semisync_master.so

从库安装为 semisync_slave.so

进入mysql 客户端,

在主库上执行sql

install plugin rpl_semi_sync_master soname 'semisync_master.so';

set global rpl_semi_sync_master_enabled=ON;

从库上执行:

install plugin rpl_semi_sync_slave soname 'semisync_slave.so';

set global rpl_semi_sync_slave_enabled=ON;

注意:初次加载插件后,MySQL会将该插件记录到系统表mysql.plugin中,下次启动时系统会自动加载该插件。

检查:select * from mysql.plugin;

检查:

select @@have_dynamic_loading


2.配置my.cnf

主从库都进行配置:

rpl-semi-sync-master-enabled = 1

rpl-semi-sync-slave-enabled = 1

主库配置:

rpl_semi_sync_master_enabled=ON:表示在master上已经开启半同步复制模式。

rpl_semi_sync_master_timeout=10000:该参数默认为10000毫秒,即10秒,可以调整,表示如果主库在某次事务中等待事件超过10秒,则降级为异步复制模式,不再等待slave,如果master探测到slave恢复,则会自动回到半同步模式。

rel_semi_synv_master_wait_no_slave:表示是否允许master每个事务提交后都要等待slave的确认信号,默认是ON,即每一个事务都会等待,如果是OFF,则slave追赶上之后,也不会回到半同步模式。

rlp_semi_sync_master_trace_level=32:表示开启半同步复制模式时的调试级别,默认是32。

从库配置:

pl_semi_sync_slave_enabled=ON:表示在slave上开启半同步复制模式。

rlp_semi_sync_slave_trace_level=32:表示开启半同步复制模式时的调试级别,默认是32。

3.在主从库上开启半同步复制

主:

mysql>set global rpl_semi_sync_master_enabled=1;

mysql>set global rpl_semi_sync_master_timeout=30000;

从:

mysql>set global rpl_semi_sync_slave_enabled=1;

注意:如果之前配置的是异步复制,在这里要重启一下从库的IO线程,如果是全新的半同步则不用重启.

重启命令是:mysql>stop slave io_thread;start slave io_thread;

4.在主库上查看半同步状态

mysql>show status like '%semi_sync';

在输出信息中,我们重点关注三个参数:

rpl_semi_sync_master_status  OFF/ON    #ON表示半同步复制打开,OFF表示关闭

rpl_semi_sync_master_yes_tx  [number]      #这个数字表示主库当前有几个事务说通过半同步复制到从库的

rpl_semi_sync_master_no_tx  [number]      #表示有几个事务不是通过半同步复制到从库的

上一篇下一篇

猜你喜欢

热点阅读