mysql 之主从复制及优化方法

本文介绍了MySQL主从复制的优化方法,包括使用GTID简化复制设置,解决主从节点IO缺陷的半同步复制,详细解析AFTER_COMMIT和AFTER_SYNC两种GTID模式,实施延迟复制以允许数据撤回,以及针对SQL线程的优化以降低延迟。同时,还提到了启用慢查询日志来监控和优化性能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.在mysql中引入GTID的模式

对mysql的一主多从做优化,引入gtid不用每次都要指定从master中复制文件名信息

首先对master设置

 

slave(1)设置

 

 

 在slave(2)设置

测试:

2.主从节点的IO缺陷及优化方法 (IO -> relaylog 原始主从结构的IO不稳定,因为master采用异步的方式发送数据,如果slave端没有接收到的话,会导致主从数据不一致。因此需要“无损复制”,即“半同步复制”

安装插件(master和slave不一样)

 需要先重启slave中的IO线程才会生效

 更改配置文件——设置启动即生效

测试:

 

 故障模拟:

 重新激活slave端的IO线程(<START SLAVE IO_THREAD>),在master端可以立即看到异步同步的信息已更新为正常。

 

测试:

3.GTID的两种模式——AFTER_COMMIT和AFTER_SYNC

AFTER_COMMIT(5.6版本)模式:

  AFTER_SYNC(5.7版本)模式:

两种模式的区别是:

SYNC比COMMIT多出一个步骤。SYNC会在收到slave端的反馈确认已成功接收信息后,才会向用户返回“OK”值;而COMMIT则在发送完成后就显示“OK”,并没有确认slave端是否成功接收。

 4.延迟复制

当master中的输入数据后,不会立即同步到slave端。而是可以有“撤回/后悔”的机会。这就需要引入延迟同步机制。

参考资料:

设置:

在slave中执行如下操作,时间设置为30秒(也就是30秒的后悔时间)。需要先关闭SQL线程。

 测试:

 5. 主从节点的SQL缺陷及优化方法

SQL默认是单线程的,需要同步的数据较多时会造成很高的延迟,因此需要开启多线程模式。

在slave修改配置文件

 

 6.慢查询

自动查询执行比较慢的mysql语句,并记录在指定文件中。

慢查询功能默认是关闭的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值