MySQL 5.5 常用的複製環境管理命令

feelpurple發表於2016-04-29
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)

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/26506993/viewspace-2090433/,如需轉載,請註明出處,否則將追究法律責任。

相關文章