MySQL系列~增强半同步复制

2023-11-26  本文已影响0人  开心的蛋黄派

一 简介: 无损复制

二 对比

after_commit 5.6 (有损复制)

1 客户端提交事务

2 存储层提交事务

3 sync binlog->slave

4 收到ack-信息

5 客户端返回-commitOK

after_sync 5.7(无损复制)

1 客户端提交事务

2 sync binlog->slave

3 收到ack-信息(独立ack应答线程)

4 存储引擎层提交事务

5 客户端返回-commitOK

三 安装

install plugin rpl_semi_sync_slave soname 'semisync_slave.so'; 全部

install plugin rpl_semi_sync_master soname 'semisync_master.so';

set global rpl_semi_sync_master_enabled= 1;  主

set global rpl_semi_sync_master_enabled= 1; stop slave ;start slave; 从 日志关键字 过滤Start semi-sync replication

配置文件-通用

loose_rpl_semi_sync_master_wait_point = AFTER_SYNC

loose_rpl_semi_sync_slave_enabled   = ON

无需 在配置文件配置plugin_load-当插件安装完成后,会自动更新插件表,重启自动加载

四 重要参数 默认不用调整

rpl_semi_sync_master_wait_for_slave_count=1(默认) 至少有一个slave应当

rpl_semi_sync_master_wait_point=after_sync(默认) sync模式

rpl_semi_sync_master_timeout=10000(默认10s)超过10s转化为异步复制

五 监控

语句 show global status like '%semi%';

主库

Rpl_semi_sync_master_status =ON

从库

Rpl_semi_sync_slave_status =ON 监控从库的半同步复制状态

Rpl_semi_sync_master_no_tx=num 异步复制下的事务个数,转化为异步复制后会增长

当从库io_thread复制异常时,半同步复制也会异常,所以从库报警也会发生

上一篇下一篇

猜你喜欢

热点阅读