Mysql 建立心跳錶來監控Replication的Slave是否延遲
mysql replication的slave同步是否真實延遲,大部分人都是在slave上執行show slave status\G來捕獲Slave_IO_Running: Yes和Slave_SQL_Running: Yes和Seconds_Behind_Master: 0這三列資訊,今天我們自己另闢蹊蹺不同過show slave status\G來捕獲,而是直接監控master庫的資料是否真實寫入到slave庫
1、Master上的mysql庫上建立心跳錶Heartbeat_table
CREATE TABLE `heartbeat_table` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `master_datetime` datetime NOT NULL, `slave_datetime` datetime NOT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8
2、Master上的mysql庫上建立一個儲存過程往心跳錶Heartbeat_table插資料
delimiter $$ CREATE DEFINER=`root`@`localhost` PROCEDURE `sp_insert_heartbeat_table`() BEGIN DECLARE master_datetime datetime; declare slave_datetime datetime; INSERT INTO Heartbeat_table (master_datetime,slave_datetime) VALUES(NOW(),SYSDATE()); END$$
3、Master上的mysql庫上建立建立一個事件每分鐘執行一次步驟2的儲存過程
CREATE EVENT event_replication_insert ON SCHEDULE EVERY 60 SECOND DO call sp_insert_heartbeat_table();
4、Master上的mysql庫上建立建立一個事件每分鐘刪除心跳錶3天前的記錄
CREATE EVENT event_replication_delete ON SCHEDULE EVERY 60 SECOND DO delete from Heartbeat_table where id in (select id from (select id from Heartbeat_table c1 where UNIX_TIMESTAMP(now())-UNIX_TIMESTAMP(master_datetime)>259200) t1)
5、在slave伺服器上編寫一個監控slave同步的郵件的指令碼,延遲超過120秒就報警
#!/bin/bash
mysql_user="root"
mysql_pass="pwd"
hostname=echo `hostname`
delay=`/usr/bin/mysql -u${mysql_user} -p${mysql_pass} -e"SELECT NOW()-MAX(master_datetime) FROM mysql.heartbeat_table"`
delay_seconds=`echo $delay |awk '{print $2}'`
if [ "$delay_seconds" -gt 120 ];then
echo "$hostname Mysql Salve delay $delay_seconds seconds,please check!!!"| mailx -s "$hostname Mysql Salve delay $delay_seconds seconds,please check!!!" emailname@XX.com
fi
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/30126024/viewspace-2789731/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- MySQL中slave監控的延遲情況分析MySql
- mysql主從同步(4)-Slave延遲狀態監控MySql主從同步
- Mysql slave 延遲故障一列MySql
- MySQL Slave延遲很大優化方法MySql優化
- 【Mysql】Slave 延遲很大並且不動了MySql
- 從Mysql slave system lock延遲說開去MySql
- Sql Server實時監控釋出訂閱複製Replication、subscription有多少延遲的方法SQLServer
- 【MySQL】常見slave 延遲原因以及解決方法MySql
- MySQL:slave 延遲一列 外來鍵檢查和自增加鎖MySql
- 【MySQL】六、常見slave 延遲原因以及解決方法MySql
- mysql同步問題之Slave延遲很大最佳化方法MySql
- 【MySQL】Slave can not handle replication events with the checksum ...MySql
- Mysql 主從延時監控MySql
- Sql Server監控釋出訂閱複製Replication、subscription的延遲時間和未傳送命令列數量SQLServer命令列
- 【MySQL】second behind master不準確的處理(監控主從延遲) pt-heartbeatMySqlAST
- zabbix應用-監控mysql slave 主從狀態MySql
- REPLICATION SLAVE 與 REPLICATION CLIENT 許可權client
- 只想監控 api 心跳,返回是否 200,有這方面的工具嗎API
- 【延遲段建立】Oracle 11gR2的延遲段建立(deferred segment creation)特性Oracle
- Oracle對錶的監控Oracle
- 如何避免MYSQL主從延遲帶來的讀寫問題?MySql
- 使用oswatcher監控rac的心跳網路
- mysql主從同步(3)-percona-toolkit工具(資料一致性監測、延遲監控)使用梳理MySql主從同步
- shell指令碼:監控MySQL服務是否正常指令碼MySql
- mysql主從延遲複製MySql
- MySQL 5.7 延遲複製配置MySql
- Mysql 主從延時監控(pt-heartbeat)詳解MySql
- 級聯slave的延遲計算和query event exe time獲取方法
- Oracle11gr2延遲段建立Oracle
- shell指令碼:監控MySQL服務是否正常薦指令碼MySql
- 面試官:我們們來聊一聊mysql主從延遲面試MySql
- Mysql配置從庫延遲應用MySql
- oracle備庫延時的監控方法Oracle
- RabbitMQ延遲訊息的延遲極限是多少?MQ
- 【11gR2新特性】extent延遲建立
- Mytop工具來監控MySQL資源MySql
- Oracle 11gr2 的新特性-延遲段建立Oracle
- mysql檢視錶建立的索引MySql索引