深入理解MySQL主從複製線程狀態轉變

這篇文章主要給大家介紹了關於MySQL主從複製線程狀態轉變的相關資料,文中介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面來一起學習學習吧

前言

MySQL的主從複製的基本原理是從庫連接到主庫,主庫生成一個主庫DUMP線程,該DUMP線程的主要任務是
一直挖掘binlog日誌,然後發送到從庫的IO線程,IO線程接收到日誌流後,寫入relay log,另一個線
程SQL線程,會讀取該relay log內容,然後對sql語句進行重放.

本文主要給大家介紹的是關於MySQL主從複製線程狀態轉變的相關內容,下面話不多說了,來一起看看詳細的介紹吧

一、主庫線程狀態(State)值

以下列表顯示了主從複製中主服務器的Binlog Dump線程的State列中可能看到的最常見狀態(SHOW PROCESSLIST)。如果Binlog Dump線程在主服務器上看不到,這意味着複製沒有運行,也就是說,目前沒有連接任何Slave主機。

Sending binlog event to slave

二進制日誌由各種事件組成,一個事件通常爲一個更新加一些其它信息。線程已經從二進制日誌讀取了一個事件並且正將它發送到從服務器。

Finished reading one binlog; switching to next binlog

線程已經讀完二進制日誌文件並且正打開下一個要發送到從服務器的日誌文件。

Has sent all binlog to slave; waiting for binlog to be updated

線程已經從二進制日誌讀取所有主要的更新並已經發送到了從服務器。線程現在正空閒,等待由主服務器上新的更新導致的出現在二進制日誌中的新事件。

Waiting to finalize termination

線程停止時發生的一個很簡單的狀態。

二、從庫I/O線程狀態(State)值

Connecting to master

線程正試圖連接主服務器。

Checking master version

建立同主服務器之間的連接後立即臨時出現的狀態。

Registering slave on master

建立同主服務器之間的連接後立即臨時出現的狀態。

Requesting binlog dump

建立同主服務器之間的連接後立即臨時出現的狀態。線程向主服務器發送一條請求,索取從請求的二進制日誌文件名和位置開始的二進制日誌的內容。

Waiting to reconnect after a failed binlog dump request

如果二進制日誌轉儲請求失敗(由於沒有連接),線程進入睡眠狀態,然後定期嘗試重新連接。可以使用–master-connect-retry選項指定重試之間的間隔。

Reconnecting after a failed binlog dump request

線程正嘗試重新連接主服務器。

Waiting for master to send event

線程已經連接上主服務器,正等待二進制日誌事件到達。如果主服務器正空閒,會持續較長的時間。如果等待持續slave_read_timeout秒,則發生超時。此時,線程認爲連接被中斷並企圖重新連接。

Queueing master event to the relay log

線程已經讀取一個事件,正將它複製到中繼日誌供SQL線程來處理。

Waiting to reconnect after a failed master event read

讀取時(由於沒有連接)出現錯誤,線程企圖重新連接前將睡眠master-connect-retry秒。

Reconnecting after a failed master event read

線程正嘗試重新連接主服務器,當連接重新建立後,狀態變爲Waiting for master to send event。

Waiting for the slave SQL thread to free enough relay log space

正使用一個非零relay_log_space_limit值,中繼日誌已經增長到其組合大小超過該值。I/O線程正等待直到SQL線程處理中繼日誌內容並刪除部分中繼日誌文件來釋放足夠的空間。

Waiting for slave mutex on exit

線程停止時發生的一個很簡單的狀態。

三、從庫SQL線程狀態(State)值

Reading event from the relay log

線程已經從中繼日誌讀取一個事件,可以對事件進行處理了。

Has read all relay log; waiting for the slave I/O thread to update it

線程已經處理了中繼日誌文件中的所有事件,現在正等待I/O線程將新事件寫入中繼日誌。

Waiting for slave mutex on exit

線程停止時發生的一個很簡單的狀態。

四、從庫連接線程狀態(State)值

這些線程狀態發生在複製從庫上,但與連接線程相關聯,而不與I/O或SQL線程相關聯。

Changing master

線程正在處理CHANGE MASTER TO語句。

Killing slave

線程正在處理STOP SLAVE語句。

Opening master dump table

此狀態發生在Creating table from master dump之後。

Reading master dump table data

此狀態發生在Opening master dump table之後。

Rebuilding the index on master dump table

此狀態發生在Reading master dump table data之後。

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,如果有疑問大家可以留言交流,謝謝大家對神馬文庫的支持。

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