使用pt-heartbeat帮助测试MySQL从库delay时长-

第一次运行测试成功,运行顺畅。

过几天再次用--update测试时,发现pt-heartbeat只update一次就自己退出了,--daemonize参数似乎不起作用。

而且程序退出的exitcode还是0.

排查半天未发现问题。

后在从库上测试,发现出现同样问题,但这次注意到--stop的时候有提示:

[root@localhost mysql3306]# /usr/bin/pt-heartbeat --stop --database=pt --defaults-file=/data/mysql/mysql3306/conf/my3306.cnf --socket=/data/mysql/mysql3306/3306.sock --ask-pass
Successfully created file /tmp/pt-heartbeat-sentinel

查看pt-heartbeat代码发现该文件存在pt-heartbeat就会自动退出。

删除掉该文件后,主库上终于可以运行pt了。

重新仔细阅读pt-heartbeat的man手册才发现,手册里早已经进行了说明。

       --sentinel
           type: string; default: /tmp/pt-heartbeat-sentinel
           Exit if this file exists.
       --stop
           Stop running instances by creating the sentinel file.
           This should have the effect of stopping all running instances which are watching the same sentinel file.  If none of "--update", "--monitor" or "--check" is specified, "pt-heartbeat" will exit
           after creating the file.  If one of these is specified, "pt-heartbeat" will wait the interval given by "--interval", then remove the file and continue working.
           You might find this handy to stop cron jobs gracefully if necessary, or to replace one running instance with another.  For example, if you want to stop and restart "pt-heartbeat" every hour
           (just to make sure that it is restarted every hour, in case of a server crash or some other problem), you could use a "crontab" line like this:
            0 * * * * pt-heartbeat --update -D test --stop \
              --sentinel /tmp/pt-heartbeat-hourly
           The non-default "--sentinel" will make sure the hourly "cron" job stops only instances previously started with the same options (that is, from the same "cron" job).
           See also "--sentinel".
[root@localhost mysql3306]# cat /tmp/pt-heartbeat-sentinel
Remove this file to permit pt-heartbeat to run
 
 

pt-heartbeat --update --daemonize 只执行一次秒退的问题的更多相关文章

  1. update语句的执行步骤及commit语句的执行顺序

    update语句的执行步骤和其他DML语句的执行步骤是一样的包含insert .delete语句等,执行步骤如下: 一.如果数据和回滚数据不在数据库高速缓存区中,则oracle服务器进程将把他们从数据 ...

  2. 利用闭包实现多次ajax请求只执行最后一次

    点一个按钮,则向服务器请求资源,不作处理时,多次点击后会有很多个请求在等待.我们知道一般我们用ajax是异步请求,那么我们快速重复点击一个按钮得到的结果其实我们并不知道是哪次点击的结果可能是第一次可能 ...

  3. ffmpeg在shell循环中只执行一次问题

    最近写了一个shell脚本,发现 ffmpeg 命令只执行了一次就停了,最后找到原因: ffmpeg有时会读取标准输入流,导致命令出错,解决办法是在ffmpeg命令之后添加 #xxx ffmpeg x ...

  4. iOS只执行一次的方法

    IOS开发(64)之GCD任务最多只执行一次 1 前言 使用 dispatch_once 函数 在 APP 的生命周期内来保证你想确保每段代码只执行一次,即使它在代码的不同地方多次调用(比如单例的初始 ...

  5. ajax多次请求,只执行最后一次的方法

    ajax多次请求,只执行最后一次的方法 有时候点击按钮进行异步请求数据的时候可能网络差,用户会点击很多次,或者页面有很多相同的按钮,参数不同,但是调用的ajax相同,只想得到最后一次结果 我的思路是用 ...

  6. 友盟分享到微信 监听不执行 监听只执行onStart,(onResult,onError,onCancel 不执行)

    最近在做一个项目 有一个需求是要分享项目中的一个商品 这对于我来说简直是 so easy (项目是三个人一起写的) 正好看到之前有同事写完了  我就拿过来用吧  一顿复制粘贴  大功告成   这个是监 ...

  7. node编写定时任务,for循环只执行一遍的解决办法

    在用node编写定时任务时候,发现for循环只执行i=0这一次,就不接着循环执行了,下面贴上代码: exports.task = async function(ctx){ let { app } = ...

  8. js多次触发事件,在一定延迟内只执行一次 (事件累加)

    js多次触发事件,在一定延迟内只执行一次的案例: <!DOCTYPE html> <html> <head> <meta charset="UTF- ...

  9. Hibernate的hql语句save,update方法不执行

    Hibernate的hql语句save,update方法不执行 可能出现的原因问题: 未进行事务管理 需要进行xml事务配置或者注解方式的事务配置

随机推荐

  1. spring boot 与 自定义interceptor

    前面学习过过滤器, 但是过滤器是针对servlet的, 用在springmvc和spring boot里面, 功能上, 感觉并不是很好用. 那这里来学习一下拦截器. 一. 拦截器的执行顺序 1. 目录 ...

  2. ArcGIS紧凑型切片读取与应用2-webgis动态加载紧凑型切片(附源码)

    1.前言 上篇主要讲了一下紧凑型切片的的解析逻辑,这一篇主要讲一下使用openlayers动态加载紧凑型切片的web地图服务. 2.代码实现 上篇已经可以通过切片的x.y.z得对应的切片图片,现在使用 ...

  3. 移动端常见bug汇总001

    点击样式闪动 Q: 当你点击一个链接或者通过Javascript定义的可点击元素的时候,它就会出现一个半透明的灰色背景. A:根本原因是-webkit-tap-highlight-color,这个属性 ...

  4. .1-浅析express源码之入口文件

    鸽了鸽了,webpack源码大垃圾,看了那么久,感觉自己越来越渣……还是换个口味,node了解一下? 尝试从express框架源码入手,学习一下node的http模块相关的知识. 入口文件 先从框架的 ...

  5. log4j2配置文件log4j2.xml详解(转载)

    此博文转载自阿豪聊干货:https://www.cnblogs.com/hafiz/p/6170702.html 一.背景 最近由于项目的需要,我们把log4j 1.x的版本全部迁移成log4j 2. ...

  6. C#中利用LightningChart绘制曲线图表

    最近在做一个“基于C#语言的电炉温控制软件设计”的设计,我在大学并不是专业学习C#语言编程的,对C#的学习研究完全是处于兴趣,所以编程技术也不是很厉害,遇到问题多参照网络上的开源码. 这不,在做这个课 ...

  7. SQL:多表联合更新

    update 表一 set 表一.列1 = 表二.列1 from 表一,表二 where 表一.列2 = 表二.列2

  8. C# 利用反射将枚举绑定到下拉框

    前言:反射(Reflection)是.NET提供给开发者的一个强大工具,尽管作为.NET框架的使用者,很多时候不会用到反射.但在一些情况下,尤其是在开发一些基础框架或公共类库时,使用反射会使系统架构更 ...

  9. 撩课-Web大前端每天5道面试题-Day32

    1.module.export.import是什么,有什么作用? module.export.import是ES6用来统一前端模块化方案的设计思路和实现方案. export.import的出现统一了前 ...

  10. 了解java虚拟机---JVM的基本结构(1)

    1. JVM的基本结构 1.1. 类加载子系统 类加载子系统负责从文件或者网络中加载Class信息,加载的类信息存放于方法区的内存空间.方法区中可能还会存放运行时常量信息,包括字符串与数字常量.(这部 ...