【MySQL】second behind master不準確的處理(監控主從延遲) pt-heartbeat

哎呀我的天吶發表於2016-03-14

    binglog日誌中event的event header(event header的前4個位元組)記錄了event的時間戳, SQL回放的時間減去這個event產生的時間,就是Seconds_Behind_Master的時間。但是這個時間不準確,線上有時延時是幾千秒(3600s),但是突然就變成了0,有這種情況。


pt-heartbeat,下載通用二進位制包


建立監控資料庫:

mysql> create database monitor;
Query OK, 1 row affected (0.02 sec)

下載安裝
./pt-heartbeat -D monitor --update -uroot -p oracle -P3306 -h 10.10.60.60 --create-table --daemonize

引數的意義:

  • --update表示要實時更新時間戳的資料,這就是和之前的seconds_behind_master不同,seconds_behind_master並不是實時更新。

  • --daemonize放到後臺執行

  • --create-table第一次需要建立heartbeat名的表。


    pt-heartbeat建立一個帶有時間戳的表,並且因為是主從,這樣表會複製到從上。

並且我們可以看到,每次查詢的時候時間戳和position都是變化的,
備庫上heartbeat表的ts列時間和主庫heartbeat表中ts列的時間差就是主從複製的延遲時間
並且工具中還提供了monitor監控工具。


監控:

./pt-heartbeat -D monitor --monitor --master-server-id  603306 -uroot -p oracle -P3306 -h 10.10.60.60

看精確的看第一列,後幾列分別為1min、5min、15min內的延遲時間。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29990276/viewspace-2057316/,如需轉載,請註明出處,否則將追究法律責任。

相關文章