Percona Toolkit使用之pt-slave-delay

版权声明:本文为博主原创文章,转载敬请作出引用声明方便相互交流学习! https://blog.csdn.net/sweeper_freedoman/article/details/79941424

     pt-slave-delay的功能是给MySQL slave与它的master之间制造一个延迟。

     用法如下:

pt-slave-delay [OPTIONS] SLAVE_DSN [MASTER_DSN]

     pt-slave-delay按照需要启动和关闭slave服务器以使它滞后于master。SLAVE_DSN和MASTER_DSN使用DSN(MySQL连接访问)语法,如果省略的话其值从SLAVE_DSN到MASTER_DSN的顺序复制。

     保持10分钟时间让slave服务器滞后于master服务器1分钟。

pt-slave-delay --delay 1m --interval 15s --run-time 10m slavehost

     pt-slave-delay监测slave,然后按需启动和停止其复制SQL thread,以使它至少按照你所期望的滞后于master。实践中通常会使slave滞后于master在--delay到--delay"+"--interval之间。

     它让延迟默认基于slave上中继日志里的二进制日志位置,因此不需要连接到master。如果IO thread没有滞后于master(通常是绝大多数复制的设置,在快速的网络上IO thread延迟一般是毫秒级),这会运行良好。对于你的目的,如果IO thread延迟太大,pt-slave-delay也可以连接到master去获取二进制日志位置的信息。

     如果slave的IO thread报告在等待SQL thread释放中继日志空间,pt-slave-delay将自动连接到master去查看二进制日志位置。如果给出--ask-pass和--daemonize选项,这将使得守护进程可能会询问密码。在这种情况下,它将退出。因此,如果觉得slave可能会遇到这种情况,守护进程时你应该确保要么明确地指定--user-master选项,要么不要指定--ask-pass选项。

     SLAVE_DSN和可选的MASTER_DSN都是DSN(MySQL连接访问)。省略的MASTER_DSN值将以SLAVE_DSN的值填充,所以你不需要在两处都指定它们。pt-slave-delay读取所有的标准MySQL配置文件,例如~/.my.cnf,所以你可能并不需要指定用户名、密码以及其他常规选项。

     pt-slave-delay通过捕捉例如Ctrl-C等信号优雅地退出。你不能以捕捉的信号跳过--[no]continue。

     pt-slave-delay需要以下权限:PROCESS、REPLICATION CLIENT和SUPER。

     如果指定了--quiet选项,pt-slave-delay没有输出。否则,标准的输出是状态信息,由时间戳和pt-slave-delay的具体操作信息组成,例如:启动slave、停止slave或者只是在监测中。

     以下为个人本地环境的测试数据。

root@ubuntu:~# pt-slave-delay --delay=1m --interval=11s --run-time=11m h=192.168.112.128,P=3306,u=root,p=123456 h=192.168.112.129,P=3306,u=root,p=123456
2018-04-14T17:50:38 slave running 0 seconds behind
2018-04-14T17:50:38 STOP SLAVE until 2018-04-14T17:51:38 at master position master-bin.000001/345
2018-04-14T17:50:49 slave stopped at master position master-bin.000001/345
2018-04-14T17:51:00 slave stopped at master position master-bin.000001/345
2018-04-14T17:51:11 slave stopped at master position master-bin.000001/345
2018-04-14T17:51:22 slave stopped at master position master-bin.000001/345
2018-04-14T17:51:33 slave stopped at master position master-bin.000001/345
2018-04-14T17:51:44 no new binlog events
2018-04-14T17:51:55 slave stopped at master position master-bin.000001/526
2018-04-14T17:52:06 slave stopped at master position master-bin.000001/526
2018-04-14T17:52:17 slave stopped at master position master-bin.000001/526
2018-04-14T17:52:28 slave stopped at master position master-bin.000001/983
2018-04-14T17:52:39 slave stopped at master position master-bin.000001/983
2018-04-14T17:52:50 START SLAVE until master 2018-04-14T17:51:44 master-bin.000001/526
2018-04-14T17:53:01 slave stopped at master position master-bin.000001/983
2018-04-14T17:53:12 slave stopped at master position master-bin.000001/983
2018-04-14T17:53:23 slave stopped at master position master-bin.000001/983
2018-04-14T17:53:34 START SLAVE until master 2018-04-14T17:52:28 master-bin.000001/983
2018-04-14T17:53:45 slave stopped at master position master-bin.000001/983
2018-04-14T17:53:56 slave stopped at master position master-bin.000001/983
2018-04-14T17:54:07 slave stopped at master position master-bin.000001/983
2018-04-14T17:54:18 slave stopped at master position master-bin.000001/983
2018-04-14T17:54:29 slave stopped at master position master-bin.000001/983
2018-04-14T17:54:40 slave stopped at master position master-bin.000001/983
^CExiting on SIGINT.
2018-04-14T17:54:40 Setting slave to run normally
root@ubuntu:~# 



     参考:

https://www.percona.com/doc/percona-toolkit/LATEST/pt-slave-delay.html

猜你喜欢

转载自blog.csdn.net/sweeper_freedoman/article/details/79941424
今日推荐