python延时启动电路图_pt-slave-delay延时备份原理、实现及监控

背景

MySQL同步在快速的网络中是毫秒级的,如果有误操作,从库也很快变更了,对于一些频繁进行,不是经过严格测试的操作或者某些误操作,可能带来风险。而延时备份就可以解决这个问题,他会使从库落后主库一段时间,如果主库有误操作,完全有时间从从库恢复到误操作之前的状态。

从 MySQL 5.6开始支持延时备份,增加了新参数MASTER_DELAY:

change master to master_delay = N;

N为从库延迟主库的秒数,默认是0。如果想要从库延迟一小时,则可:

点击(此处)折叠或打开

stop slave;

change master to master_delay = 3600;

start slave;一小时后从库才会开始同步数据。percona-toolkit工具集中pt-slave-delay延时备份工具。

实现原理

pt-slave-delay工具通过启动和停止复制sql线程来设置从库落后与主库的时间。默认是基于从库上relay日志的binlog的位置来判断,因此不需要连接到主库,如果IO进程不落后与主库太多的话这个方式有效 ,如果IO线程延时过大,pt-slave-delay也可以连接到主库来获取binlog的位置信息。pt-slave-delay一般是通过 --delay参数和--interval参数来控制。--delay参数控制延时时间,--interval参数控制是否启动或者停止从库上sql线程的频繁程度,默认是一分钟检查一次。如果正在运行这个工具,Ctrl+C后他是友好退出,在退出前他还启动复制sql线程。

pt-slave-delay参数用法介绍

常用参数:

--config=A 以逗号分隔的配置文件,如果使用在第一个参数位置

--contiune 继续复制,正常退出(默认是yes)如果退出后重启线程没有until条件,他会正常运行追上master

--delay=m 从库延迟主库时长(默认是一小时)可选参数s=seconds,m=minutes,h=hours,d=days;如果没有参数默认是s

--help 查看帮助文档

--host 连接主机host

--interval 当需要启动或者停止slave时候对接检查一次(默认一分钟)可选参数s=seconds,m=minutes,h=hours,d=days

--log 打印所有输出到指定文件

--password 连接时所需密码

--port 端口号

--quite 静默模式,不打印输出到屏幕上

--run-time pt-slave-delay运行时长

--socket socket文件路径

--user 连接用户名

--version 显示版本号

帮助文档:

man /usr/bin/pt-slave-delay

pt-slave-delay --help

使用范例

使用范例:

使从库延后主库1小时,并且隔十分钟检查一次,运行10小时

pt-slave-delay --user=root   --passsword=*********  --port=****  --host=*.*.*.*  --delay=1h   --interval=10m  --run-time=10h

延时备份监控

监控用到两个脚本,一个脚本负责启动延时备份,另一个脚本负责监控延时备份的进程和从库的延时时间,如果检测到没有启动或者延时超时,即发出报警。这个监控脚本添加到定时任务cron中。启动时需要三个参数:host、port、delaytime,使用这些参数增大了监控脚本的使用范围并且可批量执行延时备份。

脚本一:

这个脚本负责启动延时备份,默认传入三个参数:host 、port、delaytime。delaytime默认使用“h”。

脚本二:

这个脚本添加到定时任务cron中,传入启动脚本中的三个默认参数:host、port、delaytime。监控两个状态

(1)pt-slave-delay进程是否在正常执行,如果检测不到pt-slave-delay进程则报警。

(2)对比从库监控表的 onlinetime 和主库时间戳,看是否时差超过延时时长delaytime,如果超出delaytime 则报警。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值