1、检查Slave节点的各个状态
显示slave线程的重要参数。
mysql> show slave status\G
*************************** 1. row ***************************
Slave_IO_State: Waiting for master to send event
Master_Host: 192.168.78.139
Master_User: repl
Master_Port: 3306
Connect_Retry: 60
Master_Log_File: mysql-bin.000012
Read_Master_Log_Pos: 414
Relay_Log_File: mysqld-relay-bin.000002
Relay_Log_Pos: 560
Relay_Master_Log_File: mysql-bin.000012
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: 414
Relay_Log_Space: 717
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: 100
1 row in set (0.00 sec)
Slave_IO_State 这个字段是SHOW PROCESSLIST输出结果中State字段的拷贝。这个字段告诉你线程正在做什么。
Slave_IO_Running 指示I/O线程是否启动并成功连接到Master。
Slave_SQL_Running 指示SQL线程是否启动
Last_IO_Errno, Last_IO_Error 导致I/O线程停止运行的错误号和错误日志,如果Last_IO_Error里面的值不是空值,则相关的错误也会出现在slave节点的错误日志里。
Last_SQL_Errno, Last_SQL_Error 导致SQL线程停止运行的错误号和错误日志,错误号为0且错误日志为空,说明没有错误。
Seconds_Behind_Master Slave节点与Master节点的延迟时间。当Slave节点正在进行更新操作的时候,这个字段会显示Slave节点上面现有时间和Master节点对同一事件处理时间的差异。当Slave节点没有事件的时候,这个值为0。
Master_Log_File I/O线程正在读取的Master节点的二进制日志的名称
Read_Master_Log_Pos I/O线程正在读取的Master节点的二进制日志的位置
Relay_Master_Log_File SQL线程最近执行过的event(事件)所在的Master二进制日志文件名
Exec_Master_Log_Pos SQL线程读取和执行的Master节点二进制日志的位置,下一个事务或事件将从这个位置开始。当你执行CHANGE MASTER TO语句的时候,可以使用这个字段的值。
Relay_Log_File SQL线程正在读取和执行的relay log名称
Relay_Log_Pos SQL线程正在读取和执行的relay log的位置
2、显示线程状态
Master节点的线程状态
mysql> show processlist\G
ERROR 2006 (HY000): MySQL server has gone away
No connection. Trying to reconnect...
Connection id: 4
Current database: *** NONE ***
*************************** 1. row ***************************
Id: 2
User: repl
Host: 192.168.78.137:42524
db: NULL
Command: Binlog Dump
Time: 63044
State: Master has sent all binlog to slave; waiting for binlog to be updated
Info: NULL
Slave节点的线程状态
mysql> show processlist\G
*************************** 1. row ***************************
Id: 2
User: system user
Host:
db: NULL
Command: Connect
Time: 62933
State: Waiting for master to send event
Info: NULL
*************************** 2. row ***************************
Id: 3
User: system user
Host:
db: NULL
Command: Connect
Time: 62831
State: Slave has read all relay log; waiting for the slave I/O thread to update it
Info: NULL
3、显示当前有多少个Slave节点注册到Master节点,在Master节点执行
mysql> SHOW SLAVE HOSTS;
+-----------+------+------+-----------+
| Server_id | Host | Port | Master_id |
+-----------+------+------+-----------+
| 200 | | 3306 | 100 |
+-----------+------+------+-----------+
1 row in set (0.00 sec)
4、停止slave线程。执行这个命令需要SUPER权限。推荐的最佳实践是在关闭Slave节点数据库服务之前执行STOP SLAVE这个命令。
mysql> stop slave;
Query OK, 0 rows affected (0.14 sec)
mysql> show slave status\G
*************************** 1. row ***************************
Slave_IO_State:
Master_Host: 192.168.78.139
Master_User: repl
Master_Port: 3306
Connect_Retry: 60
Master_Log_File: mysql-bin.000012
Read_Master_Log_Pos: 414
Relay_Log_File: mysqld-relay-bin.000002
Relay_Log_Pos: 560
Relay_Master_Log_File: mysql-bin.000012
Slave_IO_Running: No
Slave_SQL_Running: No
可以单独停止某个线程
mysql> stop slave io_thread;
Query OK, 0 rows affected (0.00 sec)
5、启动两个slave线程。I/O线程负责从master服务器中读取事件(events)并将它们储存到relay log中。SQL线程负责从relay log中读取事件并执行它们。执行START SLAVE需要SUPER权限。
mysql> start slave;
Query OK, 0 rows affected (0.08 sec)
mysql> stop slave sql_thread;
Query OK, 0 rows affected (0.00 sec)
可以单独启动某个线程
mysql> start slave sql_thread;
Query OK, 0 rows affected (0.00 sec)
mysql> start slave io_thread;
Query OK, 0 rows affected (0.00 sec)
显示slave线程的重要参数。
mysql> show slave status\G
*************************** 1. row ***************************
Slave_IO_State: Waiting for master to send event
Master_Host: 192.168.78.139
Master_User: repl
Master_Port: 3306
Connect_Retry: 60
Master_Log_File: mysql-bin.000012
Read_Master_Log_Pos: 414
Relay_Log_File: mysqld-relay-bin.000002
Relay_Log_Pos: 560
Relay_Master_Log_File: mysql-bin.000012
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: 414
Relay_Log_Space: 717
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: 100
1 row in set (0.00 sec)
Slave_IO_State 这个字段是SHOW PROCESSLIST输出结果中State字段的拷贝。这个字段告诉你线程正在做什么。
Slave_IO_Running 指示I/O线程是否启动并成功连接到Master。
Slave_SQL_Running 指示SQL线程是否启动
Last_IO_Errno, Last_IO_Error 导致I/O线程停止运行的错误号和错误日志,如果Last_IO_Error里面的值不是空值,则相关的错误也会出现在slave节点的错误日志里。
Last_SQL_Errno, Last_SQL_Error 导致SQL线程停止运行的错误号和错误日志,错误号为0且错误日志为空,说明没有错误。
Seconds_Behind_Master Slave节点与Master节点的延迟时间。当Slave节点正在进行更新操作的时候,这个字段会显示Slave节点上面现有时间和Master节点对同一事件处理时间的差异。当Slave节点没有事件的时候,这个值为0。
Master_Log_File I/O线程正在读取的Master节点的二进制日志的名称
Read_Master_Log_Pos I/O线程正在读取的Master节点的二进制日志的位置
Relay_Master_Log_File SQL线程最近执行过的event(事件)所在的Master二进制日志文件名
Exec_Master_Log_Pos SQL线程读取和执行的Master节点二进制日志的位置,下一个事务或事件将从这个位置开始。当你执行CHANGE MASTER TO语句的时候,可以使用这个字段的值。
Relay_Log_File SQL线程正在读取和执行的relay log名称
Relay_Log_Pos SQL线程正在读取和执行的relay log的位置
2、显示线程状态
Master节点的线程状态
mysql> show processlist\G
ERROR 2006 (HY000): MySQL server has gone away
No connection. Trying to reconnect...
Connection id: 4
Current database: *** NONE ***
*************************** 1. row ***************************
Id: 2
User: repl
Host: 192.168.78.137:42524
db: NULL
Command: Binlog Dump
Time: 63044
State: Master has sent all binlog to slave; waiting for binlog to be updated
Info: NULL
Slave节点的线程状态
mysql> show processlist\G
*************************** 1. row ***************************
Id: 2
User: system user
Host:
db: NULL
Command: Connect
Time: 62933
State: Waiting for master to send event
Info: NULL
*************************** 2. row ***************************
Id: 3
User: system user
Host:
db: NULL
Command: Connect
Time: 62831
State: Slave has read all relay log; waiting for the slave I/O thread to update it
Info: NULL
3、显示当前有多少个Slave节点注册到Master节点,在Master节点执行
mysql> SHOW SLAVE HOSTS;
+-----------+------+------+-----------+
| Server_id | Host | Port | Master_id |
+-----------+------+------+-----------+
| 200 | | 3306 | 100 |
+-----------+------+------+-----------+
1 row in set (0.00 sec)
4、停止slave线程。执行这个命令需要SUPER权限。推荐的最佳实践是在关闭Slave节点数据库服务之前执行STOP SLAVE这个命令。
mysql> stop slave;
Query OK, 0 rows affected (0.14 sec)
mysql> show slave status\G
*************************** 1. row ***************************
Slave_IO_State:
Master_Host: 192.168.78.139
Master_User: repl
Master_Port: 3306
Connect_Retry: 60
Master_Log_File: mysql-bin.000012
Read_Master_Log_Pos: 414
Relay_Log_File: mysqld-relay-bin.000002
Relay_Log_Pos: 560
Relay_Master_Log_File: mysql-bin.000012
Slave_IO_Running: No
Slave_SQL_Running: No
可以单独停止某个线程
mysql> stop slave io_thread;
Query OK, 0 rows affected (0.00 sec)
5、启动两个slave线程。I/O线程负责从master服务器中读取事件(events)并将它们储存到relay log中。SQL线程负责从relay log中读取事件并执行它们。执行START SLAVE需要SUPER权限。
mysql> start slave;
Query OK, 0 rows affected (0.08 sec)
mysql> stop slave sql_thread;
Query OK, 0 rows affected (0.00 sec)
可以单独启动某个线程
mysql> start slave sql_thread;
Query OK, 0 rows affected (0.00 sec)
mysql> start slave io_thread;
Query OK, 0 rows affected (0.00 sec)
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/26506993/viewspace-2090433/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/26506993/viewspace-2090433/