通过show slave status查看到的Seconds_Behind_Master,从字面上来看,他是slave落后master的秒数,一般情况下,也确实这样,我们可以通过Seconds_Behind_Master数字查看slave是否落后于master,但是在一些环境中,他确会让我们产生幻觉。

在http://dev.mysql.com/doc/refman/5.5/en/show-slave-status.html中,对Seconds_Behind_Master的有一句话阐述如下:

In essence, this field measures the time difference in seconds between the slave SQL thread and the slave I/O thread.

很清晰的表明,该值是SQL threadI/O thread.之间的差值。

当在很快的网络连接情况下,I/O thread.能很快的从master的binlog中同步sql到slave的relay-log里,这样,这个值就能基本确定的slave落后master的秒数

当网络环境特别糟糕的情况下,这个值确会让我们产生幻觉,I/O thread同步很慢,每次同步过来,SQL thread就能立即执行,这样,我们看到的Seconds_Behind_Master是0,而真正的,slave已经落后master很多很多。这时业务部门的同志们就会抱怨slave与master数据不对,而你看到的Seconds_Behind_Master确为0,你就会非常的郁闷了。

其实这个时候,我们看下master,与slave就能很好的确定这期间的原因。

mysql> show master statusG

*************************** 1. row ***************************

File: ******-bin.001291

Position: 896711460

Binlog_Do_DB:

Binlog_Ignore_DB:

1 row in set (0.00 sec)

mysql> show slave statusG

*************************** 1. row ***************************

Slave_IO_State: Waiting for master to send event

Master_Host: 10.69.6.163

Master_User: replica

Master_Port: 3801

Connect_Retry: 60

Master_Log_File: *****-bin.001211

Read_Master_Log_Pos: 278633662

Relay_Log_File: *****-relay-bin.002323

Relay_Log_Pos: 161735853

Relay_Master_Log_File: *******-bin.001211

Slave_IO_Running: Yes

Slave_SQL_Running: Yes

Replicate_Do_DB:

Replicate_Ignore_DB:

Replicate_Do_Table:

Replicate_Ignore_Table:

Replicate_Wild_Do_Table:

Replicate_Wild_Ignore_Table:

Last_Errno: 0

Last_Error:

Skip_Counter: 0

Exec_Master_Log_Pos: 278633662

Relay_Log_Space: 161735853

Until_Condition: None

Until_Log_File:

Until_Log_Pos: 0

Master_SSL_Allowed: No

Master_SSL_CA_File:

Master_SSL_CA_Path:

Master_SSL_Cert:

Master_SSL_Cipher:

Master_SSL_Key:

Seconds_Behind_Master: 0

1 row in set (0.00 sec)

很明显,slave已经落后master 好多了。

暂停复制

你可以在从机上用STOP SLAVE语句来停止复制,用START SLAVE来开始复制。 用STOP SLAVE来停止从机执行二进制日志:

slave> STOP SLAVE;

当停止执行时,从机不再通过IO线程从主机读取二进制日志并且不再通过SQL线程处理中继日志中还没执行的事件。你可以指定线程的类型来独立地停止IO或者SQL线程。

例如: slave> STOP SLAVE IO_THREAD;

如果你想在从机上执行备份或者其他任务,仅仅只处理来自主机的事件,停止SQL线程会是有效的。

IO线程会继续从主机读取变化,但这些变化不会马上被应用,这样当你再次开始从机操作的时候从机就能轻易地赶上进度。 停止IO线程会让中继日志里的语句执行到中继日志停止接收新事件的那个点为止。

当你想要让从机赶上从主机来的事件时,当你想在从机上做管理但要确保你已经在指定的点有最新的更新时,可用停止IO线程的选项。这种方法同样也能用来停止从机上的事件执行,同时你在主机上做管理确保复制再次启动的时候不会有大量积压的事件要执行。

要再次开始执行复制,用START SLAVE语句:

slave> START SLAVE;

如果必要,你可以分别独立启动IO线程和SQL线程。

mysql seconds_behind_master_MySQL中的seconds_behind_master的理解相关推荐

  1. mysql seconds_behind_master_MySQL 复制延迟 Seconds_Behind_Master 究竟是如何计算的

    原标题:MySQL 复制延迟 Seconds_Behind_Master 究竟是如何计算的 导读: 作者:罗小波 参考链接 https://dev.mysql.com/doc/refman/5.7/e ...

  2. mysql如何建立索引workbench_MySQL数据库中如何正确的理解与使用索引?

    索引是存储引擎用于快速查找记录的一种数据结构,我们可以通过合理的使用数据库索引以提高数据库的访问效率.接下来主要介绍在MySQL 数据库中索引类型,以及如何创建出更加合理且高效的索引技巧. MySQL ...

  3. mysql存储过程出参和入参_数据库mysql存储中的入参出参理解

    在使用语句的时候,不可避免的要考虑参数的问题,而参数又是用来辅助变量的.有些小伙伴看到我们标题中的入参形参不知道是什么意思,其实也不难理解.我们把出参和入参看成输入和输出的意思就可以了.想必这样说大家 ...

  4. MySQL主从复制中的“show slave status”详细含义

    MySQL主从复制中的"show slave status"详细含义 正常状态的信息 *************************** 1. row ************ ...

  5. mysql declare与set的区别_浅谈MySQL存储过程中declare和set定义变量的区别

    在存储过程中常看到declare定义的变量和@set定义的变量.简单的来说,declare定义的类似是局部变量,@set定义的类似全局变量. 1.declare定义的变量类似java类中的局部变量,仅 ...

  6. MYSQL专题-由简到繁理解索引结构

    大家可能都听过数据库索引,当然作为开发者来说其实大部分时间也用过索引.但是可能有的人知道索引是干什么的,但是对于索引的结构却不是很了解.所以这篇博客我会谈谈对索引结构的一些知识以及分享如何从零开始一层 ...

  7. mysql的分区技术作用_理解MySQL数据库分区管理的技术细节

    在MySQL数据库中,表的不同部分在不同的位置被存储为单独的表.分区主要就是用来解决表在不同的位置存储的问题.在其他数据库中,也会存在这种情况.他们将这种类型的数据表称之为分区表.分区的管理,对于My ...

  8. dnslog在mysql在linux_DNSLog在MySQL注入中的实战

    关于DNSlog在Web攻击的利用 简单理解就是在某些无法直接利用漏洞获得回显的情况下,但是目标可以发起DNS请求,这个时候可以通过DNSlog这种方式把想获得的数据外带出来. 常用在哪些情况下SQL ...

  9. linux mysql 存储过程乱码,mysql存储过程中 乱码问题解决办法

    中文乱码无论在何时都是一个头疼的问题,mysql的存储过程参数也同样存在这个问题. 1.直接使用insert into语句没问题,能够正常插入汉字. 2.把insert into语句移到Procedu ...

最新文章

  1. 如何修改Sql2005注册服务器名称 {转载}
  2. 【经典书】概率图模型:原理与技术
  3. 一些信号与自己的卷积结果
  4. 学习java时的一些笔记(4)
  5. [置顶] 深入浅出Javascript(三)创建自定义对象以及属性、方法
  6. SAP UI5 Hash session 2016-07-18
  7. 让Visual Studio 2013为你自动生成XML反序列化的类
  8. jsonp react 获取返回值_Django+React全栈开发:文章列表
  9. 训练日志 2019.4.27
  10. 解释一下pack和unpack
  11. 【FlexSim2019】自学笔记:一个实例看何为A连接?何为S连接?其意义的深入探讨
  12. bp神经网络误差反向传播,bp神经网络结果不一样
  13. 国内外优秀公共DNS测评及推荐
  14. 关于安卓图片剪切造成软件崩溃问题的解决方法
  15. 高考全国卷导数题分类
  16. cnzz.php,php,curl_PHP curl抓取cnzz统计数据,php,curl,cnzz - phpStudy
  17. iNode用户win10开热点手机连接时总显示获取IP中的解决方法
  18. 【pwn】长安杯baigei
  19. Gephi实战教程:从入门到精通
  20. 英文字体“磅”(Point)和中文字号的关系

热门文章

  1. Python练习之 对文件进行创建,然后重命名文件最近进行文件删除
  2. com.sec.android.app.smartclipservice,EPR Aerospace News
  3. http multipart java_Http MultiPart请求
  4. 笨办法学python3 pdf 脚本之家_解决python3输入的坑——input()
  5. 虚拟跳线软件干什么用的_疯狂刷单!用违法软件生成虚拟手机号,“骑手”半年“刷单”牟利60余万,百米内竟有万笔订单 | 申晨间...
  6. java对mysql查询_如何利用java对mysql数据库进行增删改查
  7. python实现表格线性回归_Python实现线性回归
  8. linux后台启动脚本nohup,linux下后台执行shell脚本nohup
  9. phpmyadmin 导出mysql,在phpmyadmin中导入/导出非常大的mysql数据库
  10. 模型压缩 相关文章解读