mysql复制的监控

一.复制过程中的线程问题

控制复制有三个线程。在master上,每个已经连接的slave都有一个binlog Dump线程(转储线程),该线程负责把binlog事件传送给已经连接的slave。slave上有两个线程,slave-I/O线程和slave-SQL线程,slave-I/O线程负责读取master传递过来的binlog事件,然后将这些事件写入slave的中继日志(relay-log)。 slave-SQL线程负责读取中继日志的事件然后执行。

master端:

使用show processlist 可以查看binlog Dump线程的当前状态

State:描述了master对二进制日志和slave做了那些操作

User:显示运行该语句的用户(之前授权的用于复制的用户)

Command:该线程运行的命令的类型

Info:线程正在执行的语句信息,当前复制状态处于等待状态字段为NULL。

slave端:

同样也可以使用show processlist查看线程的状态

正常状态:等待来自master的信息(I/O线程),已经全部执行中继日志中的事件(SQL线程)

在排除故障时,使用show processlist可以很方便的查看复制的状态‘

二.监控master

1.show master status

File:列出当前binlog文件的名称

Position:写出二进制日志当前的位置(也就是下一次日志写入的位置)

Binlog_Do_DB:指定的数据库(对于数据库的过滤有用)

Binlog_Ignore_DB:忽略的数据库

Executed_Gtid_Set:基于Gtid的复制

2.show master logs(show binary logs 列出master上可用的二进制文件及其大小)

该命令有利于比较master和slave的信息,也就是slave目前正在读取master上哪个二进制日志。

三.监控slave

1.show slave status:显示slave的二进制日志,slave到master的连接和复制活动,包括当前binlog文件的文件名以及偏移位置。

slave的复制信息大概分为:master连接的信息、slave性能、日志信息、过滤、日志性能和出错条件

master连接的信息:master的主机名、连接的用户、连接的端口

日志信息:master二进制日志和slave中继日志的信息,包括文件名和位置信息

Relay_Log_Space:所有中继日志文件的大小

Seconds_Behind_Master:事件执行和事件写入master二进制日志之间的事件间隔。

master的读取位置:IO线程即将从master二进制日志读取下一个事件的位置

Master_Log_File

Read_Master_Log_Pos

中继日志的执行位置:SQL线程即将执行的slave中继日志中下一个事件的位置

Relay_Log_Pos

Relay_Log_File

master的执行位置:SQL线程即将执行master binlog中下一个事件的位置

Relay_Master_Log_File

Exec_Master_Log_Pos

通过比较master的读取位置和master的执行位置,可以确定是否事件等待执行,一旦位置相同,表明中继日志中没有等待的事件,此时可以安全的停止slave并重定向到新的master

 

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值