MySQL show processlist 4 Replication Thread States

 

  • 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 表索引

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章