日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

mysql seconds_behind_master_MySQL中的seconds_behind_master的理解

發布時間:2025/3/11 数据库 12 豆豆
生活随笔 收集整理的這篇文章主要介紹了 mysql seconds_behind_master_MySQL中的seconds_behind_master的理解 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

通過show slave status查看到的Seconds_Behind_Master,從字面上來看,他是slave落后master的秒數,一般情況下,也確實這樣,我們可以通過Seconds_Behind_Master數字查看slave是否落后于master,但是在一些環境中,他確會讓我們產生幻覺。

在http://dev.mysql.com/doc/refman/5.5/en/show-slave-status.html中,對Seconds_Behind_Master的有一句話闡述如下:

In essence, this field measures the?time difference in seconds between the slave SQL thread and the slave I/O thread.

很清晰的表明,該值是SQL threadI/O thread.之間的差值。

當在很快的網絡連接情況下,I/O thread.能很快的從master的binlog中同步sql到slave的relay-log里,這樣,這個值就能基本確定的slave落后master的秒數

當網絡環境特別糟糕的情況下,這個值確會讓我們產生幻覺,I/O thread同步很慢,每次同步過來,SQL thread就能立即執行,這樣,我們看到的Seconds_Behind_Master是0,而真正的,slave已經落后master很多很多。這時業務部門的同志們就會抱怨slave與master數據不對,而你看到的Seconds_Behind_Master確為0,你就會非常的郁悶了。

其實這個時候,我們看下master,與slave就能很好的確定這期間的原因。

mysql> show master statusG

*************************** 1. row ***************************

File: ******-bin.001291

Position: 896711460

Binlog_Do_DB:

Binlog_Ignore_DB:

1 row in set (0.00 sec)

mysql> show slave statusG

*************************** 1. row ***************************

Slave_IO_State: Waiting for master to send event

Master_Host: 10.69.6.163

Master_User: replica

Master_Port: 3801

Connect_Retry: 60

Master_Log_File: *****-bin.001211

Read_Master_Log_Pos: 278633662

Relay_Log_File: *****-relay-bin.002323

Relay_Log_Pos: 161735853

Relay_Master_Log_File: *******-bin.001211

Slave_IO_Running: Yes

Slave_SQL_Running: Yes

Replicate_Do_DB:

Replicate_Ignore_DB:

Replicate_Do_Table:

Replicate_Ignore_Table:

Replicate_Wild_Do_Table:

Replicate_Wild_Ignore_Table:

Last_Errno: 0

Last_Error:

Skip_Counter: 0

Exec_Master_Log_Pos: 278633662

Relay_Log_Space: 161735853

Until_Condition: None

Until_Log_File:

Until_Log_Pos: 0

Master_SSL_Allowed: No

Master_SSL_CA_File:

Master_SSL_CA_Path:

Master_SSL_Cert:

Master_SSL_Cipher:

Master_SSL_Key:

Seconds_Behind_Master: 0

1 row in set (0.00 sec)

很明顯,slave已經落后master 好多了。

暫停復制

你可以在從機上用STOP SLAVE語句來停止復制,用START SLAVE來開始復制。 用STOP SLAVE來停止從機執行二進制日志:

slave> STOP SLAVE;

當停止執行時,從機不再通過IO線程從主機讀取二進制日志并且不再通過SQL線程處理中繼日志中還沒執行的事件。你可以指定線程的類型來獨立地停止IO或者SQL線程。

例如: slave> STOP SLAVE IO_THREAD;

如果你想在從機上執行備份或者其他任務,僅僅只處理來自主機的事件,停止SQL線程會是有效的。

IO線程會繼續從主機讀取變化,但這些變化不會馬上被應用,這樣當你再次開始從機操作的時候從機就能輕易地趕上進度。 停止IO線程會讓中繼日志里的語句執行到中繼日志停止接收新事件的那個點為止。

當你想要讓從機趕上從主機來的事件時,當你想在從機上做管理但要確保你已經在指定的點有最新的更新時,可用停止IO線程的選項。這種方法同樣也能用來停止從機上的事件執行,同時你在主機上做管理確保復制再次啟動的時候不會有大量積壓的事件要執行。

要再次開始執行復制,用START SLAVE語句:

slave> START SLAVE;

如果必要,你可以分別獨立啟動IO線程和SQL線程。

總結

以上是生活随笔為你收集整理的mysql seconds_behind_master_MySQL中的seconds_behind_master的理解的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。