MySQL从库复制延迟的原因

  介绍

本篇内容介绍了“MySQL从库复制延迟的原因”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

一、从库复制延迟问题

1,可能的原因如下
(1)主从服务器处于不同的网络之中,由于网络延迟导致;
(2)主从服务器的硬件配置不同,从服务器的硬件配置(包括内存,CPU、网卡等)远低于主服务器;
(3)主库上有大量的写入操作,导致从库无法实时重放主库上的binlog;
(4)主库上存在着大事务操作或者慢SQL,导致从库在应用主库binlog的过程过慢,形成延迟;
(5)数据库实例的参数配置问题导致,如:从库开启了binlog,或者配置了每次事务都去做刷盘操作,

2,主从同步延迟问题判断
(1)根据从库上的状态参数判断

 MySQL服务器- 3307祝辞,SHOW  SLAVE  STATUS  \ G 

在输出结果中找到Seconds_Behind_Master参数,这个参数表示的是从库上的IO线程和SQL线程相差的时间,然后根据该参数值判断,这个值只是初步判断,不能由这个值来下结论,有如下几种情况:
, 0:表示无延迟,理想状态;
b,零:表示从库上的IO线程和SQL线程中,有某一个线程出现问题,可以再次查看Slave_IO_Running和Slave_SQL_Running的值是否都为是的,
c,大于0:表示主从已经出现延迟,这个值越大,表示从库和主库之间的延迟越严重。
d,小于0:这个值在官方文档中没有说明,通常不会出现。如果出现,那恭喜你中奖了,撞见MySQL的错误了;

(2)根据主从库上面当前应用的二进制日志文件名称或者重放日志的位置来判断
①同时打开两个MySQL的命令行窗口,分别打开主库和从库,在第一个窗口上执行查看主库当前状态的命令

 MySQL服务器- 3306祝辞,SHOW  MASTER  STATUS  \ G
  * * * * * * * * * * * * * * * * * * * * * * * * * * *,1只row  * * * * * * * * * * * * * * * * * * * * * * * * * * *
  ,,,,,,,,,,,,文件:mysql-bin.000017
  ,,,,,,,,位置:120
  ,,,,Binlog_Do_DB:,
  Binlog_Ignore_DB:大敌;
  Executed_Gtid_Set:,
  1,row  set 拷贝;(0.00,sec) 

②在第二个从库的命令行窗口执行如下命令

 mysql服务器- 3307祝辞,SHOW  SLAVE  STATUS  \ G
  * * * * * * * * * * * * * * * * * * * * * * * * * * *,1只row  * * * * * * * * * * * * * * * * * * * * * * * * * * *
  ,,,,,,,,,,,,,,Slave_IO_State:, Waiting  for  master 用send 事件
  ,,,,,,,,,,,,,,…
  ,,,,,,,,,,,,,,,Connect_Retry: 60
  ,,,,,,,,,,,,,Master_Log_File: mysql-bin.000017
  ,,,,,,,,,Read_Master_Log_Pos: 120
  ,,,,,,,,,,,,,,Relay_Log_File: relay-log.000016
  ,,,,,,,,,,,,,,,Relay_Log_Pos: 283
  ,,,,,,,Relay_Master_Log_File: mysql-bin.000017
  ,,,,,,,,,,,,Slave_IO_Running:是的
  ,,,,,,,,,,,Slave_SQL_Running:是的
  ,,,,,,,,,,,…
  ,,,,,,,,,,,,,,,,,,Last_Errno: 0
  ,,,,,,,,,,,,,,,,,,Last_Error:,
  ,,,,,,,,,,,,,,,,Skip_Counter: 0
  ,,,,,,,,,Exec_Master_Log_Pos: 120
  ,,,,,,,,,,,,,Relay_Log_Space: 613
  ,,,,,,,,,,,,,Until_Condition:没有
  ,,,,,,,,,,,,,,Until_Log_File:,
  ,,,,,,,,,,,,,,,Until_Log_Pos: 0
  ,,,,,,,,,,,,,,,…
  ,,,,,,,Seconds_Behind_Master: 0
  ,,,,,,,…
  Replicate_Ignore_Server_Ids才能:
  ,,,,,,,,,,,,Master_Server_Id: 3
  ,,,,,,,,,,,,,,,,,Master_UUID:, 2 dbbf79b - 5 - d9f - 11 - e8 - 8004 - 000 c29e28409
  ,,,,,,,,,,,,Master_Info_File:,//master.info mysql_data/3307/数据
  ,,,,,,,,,,,,,,,,,,,SQL_Delay: 0
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null

MySQL从库复制延迟的原因