Mysql 主從延時監控(pt-heartbeat)詳解
原理
pt工具在主庫上面建立一張測試表,以一秒的頻率去更新這個的記錄並把當前時間寫入到欄位中,透過分析主從同步過來的時間和當前時間做對比得出時間差。
方法
1.在主庫上建立後臺update程式
pt-heartbeat -uroot -proot -D chenmh --create-table --update --daemonize
-u:連線主庫的使用者
-p:連線主庫的使用者密碼
-D:主庫上存在的資料庫,這個資料庫隨便指定,但是必須存在
--create-table:預設會在主庫指定的資料庫中建立一個“heartbeat”表
2.監控從庫
pt-heartbeat -uroot -proot -D chenmh --table=heartbeat --master-server-id=10 --monitor -h 192.168.137.20 --interval=1
這裡面的引數除了--master-server-id是主庫的serverid,其它的都是指從庫,特別注意--master-server-id一定不能寫錯否則結果就是錯誤的,記錄了日誌之後就可以對該值做監控預警了
3.寫入監控日誌做預警分析
pt-heartbeat -uroot -proot -D chenmh --table=heartbeat --master-server-id=10 --monitor -h 192.168.137.20 --interval=1 --file=/tmp/heart.log cat /tmp/heart.log |awk -F "s" '{print $1}'
4.停止後臺更新操作
pt-heartbeat --stop
當你停止了後臺更新程式會在/tmp目錄下面產生一個pt-heartbeat-sentinel檔案,下次再啟動該後臺程式之前必須先刪除該檔案,否則無法啟動。
rm -rf /tmp/pt-heartbeat-sentinel
引數
Usage: pt-heartbeat [OPTIONS] [DSN] --update|--monitor|--check|--stop 其中--update, --moniter,--check,--stop都是單獨使用的,並且--update, --monitor, and --check are mutually exclusive --daemonize and --check are mutually exclusive.他們之間還是存在互斥。 Options: --ask-pass 使用密碼進行mysql連線時給予提示 --charset=s -A 預設的字元選項 --check 執行一次從庫的監控就結束 --check-read-only 如果是隻讀的伺服器那麼使用該選項會保持插入 --config=A 使用逗號分隔,如果指定了,那麼該引數作為命令列的第一個選項 --create-table 如果表不存在建立表heartbeat --daemonize 建立後臺的更新shell --database=s -D 指定連線的資料庫 --dbi-driver=s Specify a driver for the connection; mysql and Pg are supported (default mysql) --defaults-file=s -F 透過提供的檔案進行mysql連線 --file=s 輸出最新的 --monitor監控資訊到指定的檔案 --frames=s 設定時間週期(default 1m,5m,15m) --help 顯示幫助資訊 --host=s -h 指定連線的host --[no]insert-heartbeat-row 在使用--tables的時候預設是插入一條記錄到表heartbeat前提是表中不存在該記錄行 --interval=f 指定更新和監控heartbeat表的頻率預設是1S --log=s 當使用daemonized進行後臺更新操作時輸出所有的資訊到指定的該檔案 --master-server-id=s 指定主的server-id --monitor 監控從伺服器的引數選項 --password=s -p 指定密碼 --pid=s 建立pid檔案 --port=i -P 指定連線時使用的埠 --print-master-server-id 列印輸出master-server-id --recurse=i Check slaves recursively to this depth in --check mode --recursion-method=a Preferred recursion method used to find slaves ( default processlist,hosts) --replace 使用replace替換--UPDATE操作 --run-time=m 指定監控的時長,單位有: s=seconds, m=minutes, h=hours, d=days; 如果比指定預設是以秒為單位一直監控下去 --sentinel=s Exit if this file exists (default /tmp/pt- heartbeat-sentinel) --set-vars=A Set the MySQL variables in this comma-separated list of variable=value pairs --skew=f 指定執行從庫檢查的延時時長預設是0.5 --socket=s -S 指定連線時使用的socket檔案 --stop 停止後臺更新程式並生成--sentinel指定的檔案 --table=s 指定更新的表(預設是heartbeat) --update 更新主的heartbeat表,這個引數是後臺程式必須的引數也可以用--replace替代 --user=s -u 指定使用者名稱 --utc 忽略系統時間僅使用UTC --version 顯示版本資訊 --[no]version-check Check for the latest version of Percona Toolkit, MySQL, and other programs (default yes)
總結
可以透過這個監控的輸出檔案資訊做一個郵件報警,可以去寫這樣的一個shell
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69901823/viewspace-2781588/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Mysql 主從延時監控MySql
- 【MySQL】second behind master不準確的處理(監控主從延遲) pt-heartbeatMySqlAST
- mysql主從同步(4)-Slave延遲狀態監控MySql主從同步
- mysql 主從錯誤以及監控MySql
- 7. 監控MySQL主從狀態MySql
- python監控mysql主從指令碼PythonMySql指令碼
- 如何解決 MySQL 主從延時問題?MySql
- Shell指令碼監控MySQL主從狀態指令碼MySql
- 用zabbix監控mysql的主從複製MySql
- MySQL主從複製延遲解決方案MySql
- MySQL 主從切換延時高問題分析MySql
- zabbix應用-監控mysql slave 主從狀態MySql
- mysql主從延遲複製MySql
- MySQL 主從架構配置詳解MySql架構
- mysql主從同步(3)-percona-toolkit工具(資料一致性監測、延遲監控)使用梳理MySql主從同步
- oracle備庫延時的監控方法Oracle
- IO實時監控命令iostat詳解iOS
- MySQL主從延時這麼長,要怎麼最佳化?MySql
- mysql5.6主從引數詳解MySql
- Docker 快速搭建主從 + 哨兵監控Docker
- MySQL中slave監控的延遲情況分析MySql
- 高頻面試:如何解決MySQL主從複製延時問題面試MySql
- MySQL主從延遲解決方法的歸納和總結MySql
- MySQL主從資料庫同步延遲問題怎麼解決MySql資料庫
- 影響MySQL主從延遲的幾個因素及解決方法MySql
- CentOS6.5配置MYSQL一主多從詳解CentOSMySql
- 如何使用 taosKeeper 做好監控工作,時序資料庫 TDengine 3.0 監控工具詳解資料庫
- MySQL的主從複製、半同步複製、主主複製詳解MySql
- 資料庫系列:主從延時最佳化資料庫
- Mysql 建立心跳錶來監控Replication的Slave是否延遲MySql
- MySQL高可用(二)主備延時如何解決?MySql
- 轉:MySQL主從、字典死鎖、連線數的Python監控指令碼MySqlPython指令碼
- MySQL主從複製延遲原因及處理思路MySql
- mysql的主從複製資料延遲問題MySql
- MySQL5.6升級5.7時,出現主從延遲問題排查過程MySql
- 3-主機監控、應用監控
- mysql主從複製詳細部署MySql
- 主從複製延遲推薦解決方案