- Replication Master Thread States 主節點線程狀態
Finished reading one binlog; switching to next binlog | 線程 已經完成讀取 binlog 文件,並切換到下一個 binlog 文件 |
Master has sent all binlog to slave; waiting for more updates | 線程已經從二進制日誌中讀取了所有剩餘的更新日 志,並將它們發送到從庫。線程當前處於空閒狀態,正在等待新 的更新數據的事件寫入二進制日誌中 |
Sending binlog event to slave | 線程已經從二進制日誌中讀取 了一個事件,現在將其發送到從庫(二進制日誌由事件組成,一 個事件通常是由發生更新的數據和一些其他信息組成) |
Waiting to finalize termination | 線程停止時發生的非常短暫 的狀態,線程正在執行停止線程相關的動作 |
- Replication Slave I/O Thread States 從庫IO線程 State
Checking master version | 在建立與主庫的連接之後非常短暫 的狀態,表示正在檢查主庫的版本號 |
Connecting to master | 線程嘗試連接到主庫 |
Queueing master event to the relay log | 線程已讀取一個事 件,並將其複製到中繼日誌,以便 SQL 線程進行重放 |
Reconnecting after a failed binlog dump request | 線程正在 嘗試重新連接到主庫 |
Reconnecting after a failed master event read | 線程正在嘗 試重新連接到主庫,當重連連接成功時,狀態將變爲“Waiting for master to send event” |
Registering slave on master | 在連接到主庫成功之後非常短暫 的狀態,表示正在向主庫註冊從庫的連接信息(如從庫的 IP 和端 口信息等) |
Requesting binlog dump | 在與主庫建立連接成功之後非常短 暫的狀態,使用當前的 I/O 線程位置,向主庫發送從當前位置開 始的二進制日誌的內容的請求 |
Waiting for its turn to commit | 如果啓用了 slave_preserve_commit_order 參數,則表示從庫 I/O 線程正在 等待較舊的工作線程提交數據 |
Waiting for master to send event | 線程已經連接到主庫並且 正在等待新的二進制日誌事件,如果主庫空閒,這可能持續很長 時間。如果等待時間持續超過 slave_net_timeout 秒,則從庫 I/O 線程發生超時。此時,從庫 I/O 線程認爲主庫的連接斷開, 會嘗試重新連接主庫 |
o Waiting for master update | 連接到主庫之前的初始狀態 |
Waiting for slave mutex on exit | 線程停止時短暫發生的狀 態,表示正在回收 I/O 線程的相關互斥資源 |
Waiting for the slave SQL thread to free enough relay log space | 如果 relay_log_space_limit 變量設置值不爲 0,那麼當 中繼日誌總大小增長到超過此值時。 I/O 線程會等待,直到 SQL 線程通過重放中繼日誌內容並刪除重放完成的中繼日誌以釋放中 繼日誌佔用的空間,使其滿足中繼日誌中大小不大於 relay_log_space_limit 變量的值時,I/O 線程纔可以繼續寫入中 繼日誌操作。 |
Waiting to reconnect after a failed binlog dump request | 如果二進制日誌 dump 請求失敗(由於斷開連接),那麼線程在 進入 sleep 狀態,此時出現此狀態,然後 I/O 線程定期嘗試重新 連接主庫。重試之間的間隔時間可以使用 CHANGE MASTER TO 語句的 MASTER_CONNECT_RETRY 選項指定 * 要注意,從庫的 I/O 線程連接主庫是有心跳機制的,當主庫超 過這個心跳時間沒有發送新的 event 到 slave 上時,I/O 線程就 對主庫發起一個心跳請求,如果請求成功就重置心跳時間,當主 庫有新的 event 發送到 slave 時,這個心跳時間也會進行重置。 心跳時間由 change master 語句的 MASTER_HEARTBEAT_PERIOD 選項設置(以秒爲單位),範圍 0 到 4294967 秒,分辨率(毫秒) 最小非零值爲 0.001,表示 1 毫秒。將間隔設置爲 0 時表示禁用心跳。 默認值是 slave_net_timeout 配置參數的二分之一。so,理論上是不會出 現主從數據庫正常的情況下因爲主庫沒有寫數據而導致從庫 I/O 線程斷開的情況。 |
Waiting to reconnect after a failed master event read | 讀取 主庫 binlog 時發生錯誤(由於斷開連接)。I/O 線程在嘗試重新 連接主庫之前,線程正在以 CHANGE MASTER TO 語句的 MASTER_CONNECT_RETRY 選項(默認爲 60)設置的秒數進行 sleep(該時間是重連失敗之後的重試間隔時間) |
- Replication Slave SQL Thread States
Killing slave | 線程正在處理 STOP SLAVE 語句 o Making temporary file (append) before replaying LOAD DATA INFILE:線程正在執行 LOAD DATA INFILE 語句,並將 從庫將要讀取的數據添加到臨時文件中 |
Making temporary file (create) before replaying LOAD DATA INFILE | 線程正在執行 LOAD DATA INFILE 語句,且正 在創建臨時文件,臨時文件中包含了從庫將要讀取行數據。注 意:只有在 MySQL 5.0.3 之前的版本中,主庫記錄了原始 LOAD DATA INFILE 語句時,才能遇到此狀態 |
Reading event from the relay log | 線程正在從中繼日誌中讀 取事件,以便進行重放 |
Slave has read all relay log; waiting for more updates | 線程 已重做完所有的中繼日誌文件中的所有事件,正在等待 I/O 線程 向中繼日誌中寫入新的事件 |
Waiting for an event from Coordinator | 從庫使用多線程複製 時(slave_parallel_workers 大於 1),此狀態表示一個 slave works 線程正在等待協調器線程(Coordinator 線程)分配日誌 事件 |
Waiting for slave mutex on exit | 線程停止時發生的非常短暫 的狀態 |
Waiting for Slave Workers to free pending events | 當 Workers 線程處理的事件的總數量大小超過 slave_pending_jobs_size_max 系統變量的大小時,會發生等待 操作(協調器線程不進行分配事件給 worker 線程)。當 Workers 線程處理的事件的總數量大小低於 slave_pending_jobs_size_max 限制時,協調器恢復調度。只有 當 slave_parallel_workers 設置爲大於 0 時,此狀態纔會出現 |
Waiting for the next event in relay log | “Reading event from the relay log”狀態之前的初始狀態 |
Waiting until MASTER_DELAY seconds after master executed event | SQL 線程已讀取事件,但並沒有進行應用,而 是正在等待從庫設置的延遲複製時間失效。此延遲時間使用 CHANGE MASTER TO 的 MASTER_DELAY 選項設置 |
- Replication Slave Connection Thread States
Changing master | 線程正在處理 CHANGE MASTER TO 語句 |
Killing slave | 線程正在處理 STOP SLAVE 語句 |
Opening master dump table | 此狀態發生在主庫創建 dump 表之後 |
Reading master dump table data | "Opening master dump table"狀態之後出現的狀態,表示正在從主庫 dump 表讀取數據 |
Rebuilding the index on master dump table | “Reading master dump table data”狀態之後出現的狀態,表示正在重建 主庫 dump 表索引 |