MySQL5.5常用的复制环境管理命令

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)
文章名称:MySQL5.5常用的复制环境管理命令
转载来于:http://ybzwz.com/article/ihsjsh.html