0. 升级说明 TiDB3.0 在前不久发布了,据说有很大的性能提升。接领导命令,让我来测试一下由 2.1 版本升级到 3.0 版本的工作。下面的文档参考了官方的文档,也柔合自己的内容。 1. 测试环境 本次的测试环境的如下所示,一共有 3 台 kv,1 个 pd 和一个 db,其中 pd 和 db 共用一台主机。由于 ..

TiDB 2.1 升级到 3.0

0. 升级说明

TiDB3.0 在前不久发布了,据说有很大的性能提升。接领导命令,让我来测试一下由 2.1 版本升级到 3.0 版本的工作。下面的文档参考了官方的文档,也柔合自己的内容。

1. 测试环境

本次的测试环境的如下所示,一共有 3 台 kv,1 个 pd 和一个 db,其中 pd 和 db 共用一台主机。由于只有一个 pd 和一个 db,所以本次的测试必定会使得 tidb 停止服务的。如果要在生产环境中不停机升级,那起码每个组件都要达到官方的集群要求,即:2DB+3PD+3KV。

组件 CPU 内存 IP 地址 主机名
TiDB 2 核 4 GB 192.168.113.20 tidb01
PD 2 核 4 GB 192.168.113.20 tidb01
TiKV 2 核 4 GB 192.168.113.21 tikv01
TiKV 2 核 4 GB 192.168.113.22 tikv02
TiKV 2 核 4 GB 192.168.113.23 tikv03

2. 升级的兼容性说明

注意:

在升级的过程中不要执行 DDL 请求,否则可能会出现行为未定义的问题。

看到这里,其实还是建议停机升级。

3. 在中控机器上下载新的 TiDB-Ansible

和安装 TiDB 一样,不同的是你的/home/tidb 目录下已经有了旧的 tidb-ansible 目录了,先备份

su - tidb
mv tidb-ansible/ tidb-ansible_2.1

下载 tidb-ansible 3.0,GitHub 下载速度有点慢,耐心等待

git clone -b v3.0 https://github.com/pingcap/tidb-ansible.git

4. 编辑 inventory.ini 文件和配置文件

  1. 编辑 inventory.ini 文件
    请保持该文件的主机信息和旧文件一样,直接参考旧文件即可

  2. 修改 TiDB 为开发模式
    修改 /home/tidb/tidb-ansible/group_vars/all.yml 的参数,使得我们的使用的是开发模式,降低对硬件性能的检测标准。生产环境不要改。

dev_mode: True

5. 下载 TiDB 3.0 binary 到中控机

确认 tidb-ansible/inventory.ini 文件中 tidb_version = v3.0.0,然后执行以下命令下载 TiDB 3.0 binary 到中控机

ansible-playbook local_prepare.yml

6. 滚动升级 TiDB 集群组件

注意:
为优化 TiDB 集群组件的运维管理,TiDB 3.0 版本对 systemd 模式下的 PD service 名称进行了调整。与之前版本相比,滚动升级 TiDB 3.0 版本集群组件的操作略有不同,注意升级前后 process_supervision 参数配置须保持一致。

如果 process_supervision 变量使用默认的 systemd 参数,则通过 excessive_rolling_update.yml 滚动升级 TiDB 集群。

ansible-playbook excessive_rolling_update.yml

如果 process_supervision 变量使用 supervise 参数,则通过 rolling_update.yml 滚动升级 TiDB 集群。

ansible-playbook rolling_update.yml

这里我们使用的是 systemd,所以使用第一种方式

#7. 滚动升级 TiDB 监控组件

最后别忘了升级我们的监控组件

ansible-playbook rolling_update_monitor.yml

回帖
请输入回帖内容...