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

2023-04-1915:35:59数据库教程Comments801 views字数 937阅读模式

主从延迟是一个不大不小的问题。但是延迟非常大可能影响从库提供读或者发生故障主从切换后出现问题。个人的一点小经验分享给大家。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/36248.html

解决方案:
1、检查主从机器的IO状态,磁盘等硬件是否有问题
a.查看机器监控,查看主从io状态是否存在异常;
b.检查机器磁盘状态;
c.检查主从机器配置是否有差异。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/36248.html

2、登录数据库,查看状态信息,文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/36248.html

show slave status\G

多看几次,看Second_behind_Master的参数值是否变化。如果在减小就说明业务在追。
如果有配置心跳表(pt-heartbeat等方案),也可以通过心跳表观察:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/36248.html

select * from mysql.heatbeat;

3、调整“双1”参数为“双0”,等待延迟追平调回“双1”
#########双1 参数为0################文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/36248.html

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

#########双1参数 为1################文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/36248.html

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

4、开启并行复制文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/36248.html

-- 查看并行的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; 
文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/36248.html
  • 本站内容整理自互联网,仅提供信息存储空间服务,以方便学习之用。如对文章、图片、字体等版权有疑问,请在下方留言,管理员看到后,将第一时间进行处理。
  • 转载请务必保留本文链接:https://www.cainiaoxueyuan.com/sjk/36248.html

Comment

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定