binlogctl 工具

    Binlog Control(以下简称 binlogctl)是 TiDB Binlog 的命令行工具,用于管理 TiDB Binlog 集群。

    binlogctl 支持如下这些功能:

    • 查看 Pump/Drainer 状态
    • 暂停/下线 Pump/Drainer
    • Pump/Drainer 异常状态处理

    使用 binlogctl 的场景:

    • 维护集群,需要暂停/下线 Pump/Drainer
    • Pump/Drainer 异常退出,状态没有更新,或者状态不符合预期,对业务造成影响

    binlogctl 下载链接:

    检查文件完整性,返回 ok 则正确:

    1. sha256sum -c tidb-enterprise-tools-latest-linux-amd64.sha256

    binlogctl 使用说明

    命令行参数:

    命令示例:

    • 查询所有的 Pump/Drainer 的状态:

      设置 cmdpumps 或者 drainers 来查看所有 Pump 或者 Drainer 的状态。例如:

        1. [2019/04/28 09:29:59.016 +00:00] [INFO] [nodes.go:48] ["query node"] [type=pump] [node="{NodeID: 1.1.1.1:8250, Addr: pump:8250, State: online, MaxCommitTS: 408012403141509121, UpdateTime: 2019-04-28 09:29:57 +0000 UTC}"]
        1. [2019/04/28 09:29:59.016 +00:00] [INFO] [nodes.go:48] ["query node"] [type=drainer] [node="{NodeID: 1.1.1.1:8249, Addr: 1.1.1.1:8249, State: online, MaxCommitTS: 408012403141509121, UpdateTime: 2019-04-28 09:29:57 +0000 UTC}"]
      1. 暂停/下线 Pump/Drainer

        | cmd | 说明 | 示例 | | ———————- | ——————- | ————————————————————————————————————————————————| | pause-pump | 暂停 Pump | bin/binlogctl -pd-urls=http://127.0.0.1:2379 -cmd pause-pump -node-id ip-127-0-0-1:8250 | | pause-drainer | 暂停 Drainer | bin/binlogctl -pd-urls=http://127.0.0.1:2379 -cmd pause-drainer -node-id ip-127-0-0-1:8249 | | offline-pump | 下线 Pump | | | offline-drainer | 下线 Drainer | bin/binlogctl -pd-urls=http://127.0.0.1:2379 -cmd offline-drainer -node-id ip-127-0-0-1:8249 |

        binlogctl 会发送 HTTP 请求给 Pump/Drainer,Pump/Drainer 收到命令后会主动执行对应的退出流程。

      2. 异常情况下修改 Pump/Drainer 的状态

        在服务正常运行以及符合流程的暂停、下线过程中,Pump/Drainer 的状态都是可以正确的。但是在一些异常情况下 Pump/Drainer 无法正确维护自己的状态,可能会影响数据同步任务,在这种情况下需要使用 binlogctl 修复状态信息。

        设置 cmdupdate-pump 或者 update-drainer 来更新 Pump 或者 Drainer 的状态。Pump 和 Drainer 的状态可以为 paused 或者 offline。例如: