您好,登錄后才能下訂單哦!
前言
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之后。
總結
以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,如果有疑問大家可以留言交流,謝謝大家對億速云的支持。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。