MySQL主从延迟的几种简单解决方案
主从延迟是一个中等的问题。但过大的延迟可能会影响从库的读取能力,或者主从切换后出现问题。我想与大家分享一些我的个人经历。
解决办法:
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前端网发表,如需转载,请注明页面地址。
发表评论:
◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。