mysql檢視主從同步狀態的方法
檢視主庫執行狀態
-- 檢視主庫執行狀態 mysql> show master status\G*************************** 1. row *************************** File: mysql-bin.000012 Position: 439767167 Binlog_Do_DB: xxx_db Binlog_Ignore_DB: information_schema,mysql Executed_Gtid_Set:1 row in set (0.00 sec)
檢視從庫執行狀態
-- 檢視從庫執行狀態 mysql> show slave status\G*************************** 1. row *************************** Slave_IO_State: Waiting for master to send event Master_Host: 10.10.0.2 Master_User: slave Master_Port: 3306 Connect_Retry: 60 Master_Log_File: mysql-bin.000012 Read_Master_Log_Pos: 439767167 Relay_Log_File: xxxx-relay-bin.000018 Relay_Log_Pos: 33321 Relay_Master_Log_File: mysql-bin.000012 Slave_IO_Running: Yes Slave_SQL_Running: Yes Replicate_Do_DB: xxx_db Replicate_Ignore_DB: mysql,information_schema 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: 439767167 Relay_Log_Space: 34651 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: 0Master_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: 1 Master_UUID: 84cc6274-2241-11e6-86b1-00161e0c136d Master_Info_File: /data/mysql/master.info SQL_Delay: 0 SQL_Remaining_Delay: NULL Slave_SQL_Running_State: Slave has read all relay log; waiting for the slave I/O thread to update it Master_Retry_Count: 86400 Master_Bind: Last_IO_Error_Timestamp: Last_SQL_Error_Timestamp: Master_SSL_Crl: Master_SSL_Crlpath: Retrieved_Gtid_Set: Executed_Gtid_Set: Auto_Position: 01 row in set (0.00 sec)
其實就是主要看 Slave_IO_Running 和 Slave_SQL_Running 兩個執行緒的狀態。
-- 負責把主庫bin日誌(Master_Log)內容投遞到從庫的中繼日誌上(Relay_Log)Slave_IO_Running: Yes -- 負責把中繼日誌上的語句在從庫上執行一遍 Slave_SQL_Running: Yes -- Yes:表示正常, No:表示異常
Slave_IO執行緒相對比較簡單,一般不容易出錯。如果顯示為No,則有可能以下原因導致: * 網路問題 * 許可權問題,例如在配置slave同步時因為slave訪問master沒有許可權導致 * master上的binlog檔案誤刪或者其他問題導致的master庫突然停止更新binlog日誌。解決方案是找到同步的點和binlog檔案,重新change master 相對的Slave_SQL執行緒就比較容易出錯。例如人為的在從庫插入一條資料,造成的主從庫不一致。但此時兩個執行緒的狀態仍然是正常的,主庫插入資料時,到從庫同步時,從庫會出現主鍵重複的錯誤。此時Slave_SQL_Running的狀態變為No 而Last_SQL_Error, Last_SQL_Error_Timestamp會記錄錯誤的原因和發生的時間 Slave_SQL_Running執行緒報錯之後,會停止後續的SQL執行,因為向後執行會導致錯誤修復的難度增加
錯誤修復
-- 先停止slave stop slave; -- 跳過執行語句數量 -- 此時需要檢視錯誤日誌去修復報錯資訊 set global sql_slave_skip_counter=1; -- 開始slave start slave; -- 然後再檢查一下 slave status
如何判斷完全同步
* Master_Log_File 和 Relay_Master_Log_File 所指向的檔案必須一致 * Relay_Log_Pos 和 Exec_Master_Log_Pos 位置也要一致才行 * Slave_SQL_Running_State: 顯示為wait 中繼日誌的sql語句已經全部執行完畢
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69989885/viewspace-2745668/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 檢視使用 MySQL Shell 的連線狀態MySql
- 7. 監控MySQL主從狀態MySql
- mysql主從同步MySql主從同步
- Shell指令碼監控MySQL主從狀態指令碼MySql
- MySQL主從同步配置MySql主從同步
- 檢視mysql執行狀態的一些sqlMySql
- zabbix應用-監控mysql slave 主從狀態MySql
- GitLab 的元件狀態檢視Gitlab元件
- MySQL 資料主從同步MySql主從同步
- MySql主從同步介紹MySql主從同步
- MySQL 變數及效能狀態檢視知識技巧MySql變數
- MySQL 5.7的安裝及主從複製(主從同步)MySql主從同步
- MySQL主從同步報error 1236MySql主從同步Error
- mysql主從同步問題整理MySql主從同步
- [資料庫]MYSQL主從同步資料庫MySql主從同步
- Mysql 主從同步原理簡析MySql主從同步
- 使用laradock配置mysql主從同步MySql主從同步
- MySQL 主從同步的基本原理MySql主從同步
- 揭秘MySQL的主從同步實現方案MySql主從同步
- 使用MegaCli工具檢視Raid磁碟陣列狀態[主站備]AI陣列
- MySQL-主從複製之同步主從資料MySql
- MySQL主從同步(一主一從、一主多從、主從從)等結構的概述與配置MySql主從同步
- 檢視BW執行狀態
- 解決MySQL的主從資料庫沒有同步的兩種方法MySql資料庫
- Mysql主從同步實戰(一)【知其然】MySql主從同步
- Kylin系統檢視firewalld狀態
- firewalld:檢視版本/幫助/狀態
- 3.4.4 檢視例項的靜默狀態
- 通過Python檢視Azure VM的狀態Python
- Window 10 單機配置MYSQL主從同步MySql主從同步
- 檢視mysql版本的六種方法MySql
- 系統狀態統計和檢視
- 使用 telescope 檢視 schedule 執行狀態
- 如何檢視CATIA許可證狀態
- 檢視一個通訊埠狀態
- MySQL主從複製之半同步複製MySql
- MySQL主從複製之非同步複製MySql非同步
- 使用sestatus命令來檢視SELinux的當前狀態Linux