返回介绍

TiDB Binlog 版本升级方法

发布于 2020-10-26 07:01:24 字数 2879 浏览 1069 评论 0 收藏 0

如未特别指明,文中出现的 TiDB Binlog 均指最新的 Cluster 版本。

本文会分 TiDB Ansible 部署和手动部署两种情况介绍 TiDB Binlog 版本升级的方法,另外有一小节介绍如何从更早的不兼容版本(Kafka/Local 版本)升级到最新版本。

TiDB Ansible 部署

本节适用于使用 TiDB Ansible Playbook 部署的情况。

升级 Pump

  1. 将新版本的二进制文件 pump 复制到 {{ resources_dir }}/bin 目录中
  2. 执行 ansible-playbook rolling_update.yml --tags=pump 命令来滚动升级 Pump

升级 Drainer

  1. 将新版本的二进制文件 drainer 复制到 {{ resources_dir }}/bin 目录中
  2. 执行 ansible-playbook stop_drainer.yml --tags=drainer 命令
  3. 执行 ansible-playbook start_drainer.yml --tags=drainer 命令

手动部署

升级 Pump

对集群里的每个 Pump 逐一升级,确保集群中总有 Pump 可以接收 TiDB 发来的 Binlog。

  1. 用新版本的 pump 替换原来的文件
  2. 重启 Pump 进程

升级 Drainer

  1. 用新版本的 drainer 替换原来的文件
  2. 重启 Drainer 进程

从 Kafka/Local 版本升级到 Cluster 版本

新版本的 TiDB(v2.0.8-binlog、v2.1.0-rc.5 及以上版本)不兼容 Kafka 版本以及 Local 版本的 TiDB Binlog,集群升级到新版本后只能使用 Cluster 版本的 TiDB Binlog。如果在升级前已经使用了 Kafka/Local 版本的 TiDB Binlog,必须将其升级到 Cluster 版本。

TiDB Binlog 版本与 TiDB 版本的对应关系如下:

TiDB Binlog 版本TiDB 版本说明
LocalTiDB 1.0 及更低版本
KafkaTiDB 1.0 ~ TiDB 2.1 RC5TiDB 1.0 支持 local 版本和 Kafka 版本的 TiDB Binlog。
ClusterTiDB v2.0.8-binlog,TiDB 2.1 RC5 及更高版本TiDB v2.0.8-binlog 是一个支持 Cluster 版本 TiDB Binlog 的 2.0 特殊版本。

升级流程

注意:

如果能接受重新导全量数据,则可以直接废弃老版本,按 TiDB Binlog 集群部署中的步骤重新部署。

如果想从原来的 checkpoint 继续同步,使用以下升级流程:

  1. 部署新版本 Pump。

  2. 暂停 TiDB 集群业务。

  3. 更新 TiDB 以及配置,写 Binlog 到新的 Pump Cluster。

  4. TiDB 集群重新接入业务。

  5. 确认老版本的 Drainer 已经将老版本的 Pump 的数据完全同步到下游。

    查询 Drainer 的 status 接口,示例命令如下:

    curl 'http://172.16.10.49:8249/status'
    {"PumpPos":{"172.16.10.49:8250":{"offset":32686}},"Synced": true ,"DepositWindow":{"Upper":398907800202772481,"Lower":398907799455662081}}

    如果返回的 Synced 为 true,则可以认为 Binlog 数据已经全部同步到了下游。

  6. 启动新版本 Drainer;

  7. 下线老版本的 Pump、Drainer 以及依赖的 Kafka 和 ZookeSeper。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文