mysql半同步降级_MySQL半同步复制

本文详细介绍了MySQL半同步复制的工作原理,旨在确保数据完整性,避免在主从切换时的数据丢失。内容包括半同步复制的启动、配置、性能影响及降级机制。通过设置系统参数和插件来启用半同步复制,并提供了主从节点的配置示例。
摘要由CSDN通过智能技术生成

半同步复制简介

MySQL复制默认情况下是异步的,主库将事件写入binlog并不管从库是否接受并处理它们,如果主库崩溃时,已提交的事务可能没有被传送到从库,因此主从切换可能导致数据丢失。Semisynchronous Replication(半同步复制)则一定程度上保证提交的事务已经传给了至少一个备库。半同步

复制中,仅仅保证事务的已经传递到备库上,但是并不确保已经在备库上执行完成了。半同步复制确实有一定的性能影响,因为需要等待的从库确认。这是对增加数据的完整性的折衷。

工作原理:

从库连接主库时指明时从库否有半同步能力

主库启动半同步复制且至少有一个半同步从库,主库线程执行事务提交之后将会阻塞直到任一半同步从库确认接收到该事务的所有事件或者超时

从库确认接收到事务的所有事件之后写入到中继日志并刷新到磁盘

如果超时没有任何从库确认事务,主库恢复到异步复制,保障业务的正常使用,直到一台从库追赶上之后,继续切换到半同步模式

半同步复制必须主从两端同时启用,如任意一端禁止将使用异步复制

当主库被阻塞时(已经提交的事务等待从从库确认),不会向执行事务的session返回信息;当主库阻塞结束后,返回session执行结果。

此时,主库事务已提交,至少一台从库确认接收到事务。

如果主备网络故障或者从库崩溃,主库在事务提交后等待10秒(rpl_semi_sync_master_timeout默认值)后,主从复制将自动降级为异步模式。

半同步复制是通过plugin实现的,master和slave使用不同的plugin。默认情况下没有安装该plugin,插件位于CMAKE_INSTALL_PREFIX/lib/plugin/。安装完插件之后,还需要手动设置系统参数以开启半同步复制模式。

安装配置半同步

[Master]

首先先检查 mysql是否支持动态添加插件

mysql> show variables like 'have_dynamic_loading';

+----------------------+-------+

| Variable_name | Value |

+----------------------+-------+

| have_dynamic_loadi

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值