位置: 编程技术 - 正文
推荐整理分享MySQL中slave监控的延迟情况分析(mysql官方监控工具),希望有所帮助,仅作参考,欢迎阅读内容。
文章相关热门搜索词:mysql 监控命令,监控mysql binlog,mysql监控sql语句,mysql官方监控工具,mysql 监控命令,监控mysql binlog,mysql监控sql语句,mysql 实时监控,内容如对您有帮助,希望把文章链接给更多的朋友!
在MySQL复制环境中,我们通常只根据 Seconds_Behind_Master 的值来判断SLAVE的延迟。这么做大部分情况下尚可接受,但并不够准确,而应该考虑更多因素。
首先,我们先看下SLAVE的状态:
可以看到 Seconds_Behind_Master 的值是 ,也就是SLAVE至少延迟了 秒。
我们再来看下SLAVE上的2个REPLICATION进程状态:
可以看到SQL线程一直在执行UPDATE操作,注意到 Time 的值是 ,看起来像是这个UPDATE操作执行了秒,一个普通的SQL而已,肯定不至于需要这么久。实际上,在REPLICATION进程中,Time 这列的值可能有几种情况:1、SQL线程当前执行的binlog(实际上是relay log)中的timestamp和IO线程最新的timestamp的差值,这就是通常大家认为的 Seconds_Behind_Master 值,并不是某个SQL的实际执行耗时;2、SQL线程当前如果没有活跃SQL在执行的话,Time值就是SQL线程的idle time;
而IO线程的Time值则是该线程自从启动以来的总时长(多少秒),如果系统时间在IO线程启动后发生修改的话,可能会导致该Time值异常,比如变成负数,或者非常大。
来看下面几个状态:
好了,最后我们说下如何正确判断SLAVE的延迟情况:1、首先看 Relay_Master_Log_File 和 Master_Log_File 是否有差异;2、如果Relay_Master_Log_File 和 Master_Log_File 是一样的话,再来看Exec_Master_Log_Pos 和 Read_Master_Log_Pos 的差异,对比SQL线程比IO线程慢了多少个binlog事件;3、如果Relay_Master_Log_File 和 Master_Log_File 不一样,那说明延迟可能较大,需要从MASTER上取得binlog status,判断当前的binlog和MASTER上的差距;
因此,相对更加严谨的做法是:在第三方监控节点上,对MASTER和SLAVE同时发起SHOW BINARY LOGS和SHOW SLAVE STATUSG的请求,最后判断二者binlog的差异,以及 Exec_Master_Log_Pos 和 Read_Master_Log_Pos 的差异。
例如:在MASTER上执行SHOW BINARY LOGS 的结果是:
而在SLAVE上执行SHOW SLAVE STATUSG 的结果是:
这时候,SLAVE实际的延迟应该是:mysql-bin. 这个binlog中的binlog position 和 SLAVE上读取到的binlog position之间的差异延迟,即:
- = 个binlog event
并且还要加上 mysql-bin.这个binlog已经产生的个binlog event,共
+ = 个binlog event
批量杀死MySQL连接的四种方法详解 方法一通过information_schema.processlist表中的连接信息生成需要处理掉的MySQL连接的语句临时文件,然后执行临时文件中生成的指令。mysqlselectconcat('KILL',id,';
MySQL下的RAND()优化案例分析 众所周知,在MySQL中,如果直接ORDERBYRAND()的话,效率非常差,因为会多次执行。事实上,如果等值查询也是用RAND()的话也如此,我们先来看看下面这几
在MySQLDump中使用-w语句进行备份的方法 我们在用mysqldump备份数据时,有个选项是?where/-w,可以指定备份条件,这个选项的解释是:-w,--where=nameDumponlyselectedrecords.Quotesaremandatory我们可以做个测
标签: mysql官方监控工具
本文链接地址:https://www.jiuchutong.com/biancheng/347339.html 转载请保留说明!友情链接: 武汉网站建设