溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

深入理解MySQL主從復(fù)制線程狀態(tài)轉(zhuǎn)變

發(fā)布時間:2020-10-04 11:52:50 來源:腳本之家 閱讀:372 作者:彭東穩(wěn) 欄目:MySQL數(shù)據(jù)庫

前言

MySQL的主從復(fù)制的基本原理是從庫連接到主庫,主庫生成一個主庫DUMP線程,該DUMP線程的主要任務(wù)是
一直挖掘binlog日志,然后發(fā)送到從庫的IO線程,IO線程接收到日志流后,寫入relay log,另一個線
程SQL線程,會讀取該relay log內(nèi)容,然后對sql語句進行重放.

本文主要給大家介紹的是關(guān)于MySQL主從復(fù)制線程狀態(tài)轉(zhuǎn)變的相關(guān)內(nèi)容,下面話不多說了,來一起看看詳細的介紹吧

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

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

Sending binlog event to slave

二進制日志由各種事件組成,一個事件通常為一個更新加一些其它信息。線程已經(jīng)從二進制日志讀取了一個事件并且正將它發(fā)送到從服務(wù)器。

Finished reading one binlog; switching to next binlog

線程已經(jīng)讀完二進制日志文件并且正打開下一個要發(fā)送到從服務(wù)器的日志文件。

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

線程已經(jīng)從二進制日志讀取所有主要的更新并已經(jīng)發(fā)送到了從服務(wù)器。線程現(xiàn)在正空閑,等待由主服務(wù)器上新的更新導(dǎo)致的出現(xiàn)在二進制日志中的新事件。

Waiting to finalize termination

線程停止時發(fā)生的一個很簡單的狀態(tài)。

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

Connecting to master

線程正試圖連接主服務(wù)器。

Checking master version

建立同主服務(wù)器之間的連接后立即臨時出現(xiàn)的狀態(tài)。

Registering slave on master

建立同主服務(wù)器之間的連接后立即臨時出現(xiàn)的狀態(tài)。

Requesting binlog dump

建立同主服務(wù)器之間的連接后立即臨時出現(xiàn)的狀態(tài)。線程向主服務(wù)器發(fā)送一條請求,索取從請求的二進制日志文件名和位置開始的二進制日志的內(nèi)容。

Waiting to reconnect after a failed binlog dump request

如果二進制日志轉(zhuǎn)儲請求失敗(由于沒有連接),線程進入睡眠狀態(tài),然后定期嘗試重新連接??梢允褂猫Cmaster-connect-retry選項指定重試之間的間隔。

Reconnecting after a failed binlog dump request

線程正嘗試重新連接主服務(wù)器。

Waiting for master to send event

線程已經(jīng)連接上主服務(wù)器,正等待二進制日志事件到達。如果主服務(wù)器正空閑,會持續(xù)較長的時間。如果等待持續(xù)slave_read_timeout秒,則發(fā)生超時。此時,線程認為連接被中斷并企圖重新連接。

Queueing master event to the relay log

線程已經(jīng)讀取一個事件,正將它復(fù)制到中繼日志供SQL線程來處理。

Waiting to reconnect after a failed master event read

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

Reconnecting after a failed master event read

線程正嘗試重新連接主服務(wù)器,當(dāng)連接重新建立后,狀態(tài)變?yōu)閃aiting for master to send event。

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

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

Waiting for slave mutex on exit

線程停止時發(fā)生的一個很簡單的狀態(tài)。

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

Reading event from the relay log

線程已經(jīng)從中繼日志讀取一個事件,可以對事件進行處理了。

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

線程已經(jīng)處理了中繼日志文件中的所有事件,現(xiàn)在正等待I/O線程將新事件寫入中繼日志。

Waiting for slave mutex on exit

線程停止時發(fā)生的一個很簡單的狀態(tài)。

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

這些線程狀態(tài)發(fā)生在復(fù)制從庫上,但與連接線程相關(guān)聯(lián),而不與I/O或SQL線程相關(guān)聯(lián)。

Changing master

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

Killing slave

線程正在處理STOP SLAVE語句。

Opening master dump table

此狀態(tài)發(fā)生在Creating table from master dump之后。

Reading master dump table data

此狀態(tài)發(fā)生在Opening master dump table之后。

Rebuilding the index on master dump table

此狀態(tài)發(fā)生在Reading master dump table data之后。

總結(jié)

以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,如果有疑問大家可以留言交流,謝謝大家對億速云的支持。

向AI問一下細節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI