MySQL主从同步的指标说明
这里涉及4个指标
代码语言:txt复制slave_sql_runing:slave下SQL线程状态,作用是slave侧执行从主库抓过来的binlog
slave_io_runing:slave下IO线程状态,作用是slave侧将binlog从主库抓过来,主要是IO传输用的
seconds_behind_master:与主机同步延迟时间
master_slave_sync_distance:与主机同步延迟距离
注意:slave_sql_runing 以及 slave_io_runing同时为0正常代表处于工作状态,主从同步正常,slave_sql_runing为1代表从机不能执行主库传输过来的binlog,主从同步失败,slave_io_runing为1代表不能把binlog从主库抓到从库来,两者之间无法传输
4个指标怎么看
4个指标怎么看呢?实际上是在 已经搭建主从同步的slave端执行 show slave status的结果,如下所示:
代码语言:txt复制mysql> show slave statusG
*************************** 1. row ***************************
Slave_IO_State: Waiting for master to send event
Master_Host: 10.1.1.32
Master_User: copy
Master_Port: 3306
Connect_Retry: 60
Master_Log_File: mysql-bin.000003
Read_Master_Log_Pos: 755
Relay_Log_File: relay-bin.000002
Relay_Log_Pos: 320
Relay_Master_Log_File: mysql-bin.000003
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: 755
Relay_Log_Space: 521
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
Master_SSL_Verify_Server_Cert: No
Last_IO_Errno: 0
Last_IO_Error:
Last_SQL_Errno: 0
Last_SQL_Error:
Replicate_Ignore_Server_Ids:
Master_Server_Id: 32
Master_UUID: ba5f1c18-3d70-11e8-891f-000c2986a1f0
Master_Info_File: /var/lib/mysql/master.info
SQL_Delay: 0
SQL_Remaining_Delay: NULL
Slave_SQL_Running_State: Slave has read all relay log; waiting for more updates
Master_Retry_Count: 86400
Master_Bind:
Last_IO_Error_Timestamp:
Last_SQL_Error_Timestamp:
Master_SSL_Crl:
Master_SSL_Crlpath:
Retrieved_Gtid_Set:
Executed_Gtid_Set:
Auto_Position: 0
Replicate_Rewrite_DB:
Channel_Name:
Master_TLS_Version:
主库执行
那么我们在 已经搭建了主从同步的主库执行 这个命令会得到什么呢?
代码语言:txt复制mysql> show slave status;
Empty set (0.01 sec)
为空,惊不惊喜,意不意外!
单独库执行
那么我们在 孜然一身的库执行 这个命令会得到什么呢?
代码语言:txt复制mysql> show slave status;
Empty set (0.01 sec)
还是空的
云监控中如何配置主从同步监控
我们理解了主从同步的4个指标及其意义,接下来我们进入云监控一探究竟,看看这四个指标到底在哪?
我们发现有主机监控如下所示:
我们还发现有备机监控如下所示:
发现两者都有,那么 主机监控4个指标 和 备机监控4个指标 什么关系呢?
还记得上面什么 主库从库单身库执行show slave status; 的结果吗?
实际上,主机监控,就是在有主机之处
执行show slave status;的结果,哪些是有主机的地方呢?包含了主实例中的主机、RO实例、灾备实例中的主机
- 主实例中的主库执行( 绝大多数情况当然是空了,因为主库不做别人从库)
- RO实例上执行( 当然是该RO和主库的延迟情况了)
- 灾备实例上执行(当然是异地灾备主机和该灾备实例所属主实例的延迟情况了)
备机监控,就是在有从实例的地方执行show slave status;的结果,哪些是有从实例的地方呢?当然是主从实例中的从实例、灾备实例中的从实例呀
- 主实例中的从库执行( 反映的是透明从机和主库的延迟 )
- 灾备从库上执行( 当然是异地灾备从机向灾备主机的延迟情况了)
如何看延迟
主实例和主实例透明从机之间
我们主实例控制台上看到的延迟就是主实例的主机和透明备机的延迟
主实例和RO实例之间
RO实例控制台上看到的延迟
主实例和灾备实例之间
那么灾备实例控制台上是什么呢?如下图
没错,就是 灾备实例和自己跟随的主实例之间的延迟监控