Tre*_*ree 4 mysql replication database-replication
如何查找mysql DB是奴隶而不是通过查询使用"show slave status"?
如果复制正在运行,您必须检测以下3个选项
选项#1:检查状态变量'Slave_running'
使用MySQL 5.1/5.5
select variable_value from information_schema.global_status
where variable_name = 'Slave_running';
Run Code Online (Sandbox Code Playgroud)
使用MySQL 5.0并返回
SHOW VARIABLES LIKE 'Slave_running';
Run Code Online (Sandbox Code Playgroud)
选项#2:检查进程列表
使用MySQL 5.1 +/5.5
select COUNT(1) SlaveThreads
from information_schema.processlist
where user = 'system user';
Run Code Online (Sandbox Code Playgroud)
使用MySQL 5.0并返回
SHOW PROCESSLIST;
Run Code Online (Sandbox Code Playgroud)
在用户列中查找具有"系统用户"的2个DB Conction.
选项#3:检查是否存在master.info
如果在数据库服务器上设置了复制,请查找master.info.默认情况下,master.info通常位于/ var/lib/mysql或定义datadir的位置.
只需多次运行'cat master.info'(对于Windows社区,输入master.info).如果日志位置正在移动,则启用复制.如果日志位置没有移动,则可能意味着复制被破坏(SQL线程中的SQL错误),停止(由于STOP SLAVE;)或禁用(通过运行CHANGE MASTER TO MASTER_HOST='';).
Slave_IO_Running:读取master二进制日志的I/O线程是否正在运行。通常,您希望此值为“是”,除非您尚未开始复制或已使用 STOP SLAVE 显式停止复制。
Slave_SQL_Running:执行中继日志中事件的SQL线程是否正在运行。与 I/O 线程一样,这通常应该是“是”。