Code前端首页关于Code前端联系我们

MySQL主从延迟的几种简单解决方案

terry 2年前 (2023-09-26) 阅读数 121 #数据库

主从延迟是一个中等的问题。但过大的延迟可能会影响从库的读取能力,或者主从切换后出现问题。我想与大家分享一些我的个人经历。

解决办法:
1.检查主从机IO状态,磁盘等硬件是否有问题
a.检查机器监控,检查主机是否有异常主从IO状态;
B.检查机器磁盘状态;
c.检查主从机配置是否有差异。

2。登录数据库,查看状态信息。

show slave status\G

多检查几次,看看Second_behind_Master的参数值是否发生变化。如果减少,则说明公司正在追赶。
如果配置了心率表(pt-heartbeat等方案),还可以通过心率表观察:

select * from mysql.heatbeat;

3。将“Double 1”参数设置为“Double 0”,等待延迟均衡后调整回“Double 1”
#########Double 1 参数为 0# #### # #########

set global innodb_flush_log_at_trx_commit=0;  
set global sync_binlog=0;

##########Double 1 参数为 1 #############

set global innodb_flush_log_at_trx_commit=1;  
set global sync_binlog=1;

4 。启用并行复制

-- 查看并行的slave的线程的个数,默认是0.表示单线程   
show global variables like 'slave_parallel_workers';   
-- 根据实际情况保证开启多少线程  
set global slave_parallel_workers = 4;  
-- 设置并发复制的方式,默认是一个线程处理一个库,值为database(5.7以及之前版本)   
show global variables like '%slave_parallel_type%';  
-- 停止slave  
stop slave;  
-- 设置属性值(必须stop slave 设置)  
set global slave_parallel_type='logical_clock';  
-- 开启slave  
start slave;  
-- 查看线程数
show full processlist; 

版权声明

本文仅代表作者观点,不代表Code前端网立场。
本文系作者Code前端网发表,如需转载,请注明页面地址。

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

热门