title | category |
---|---|
使用 TiDB Ansible 升级 TiDB 集群 |
deployment |
滚动升级 TiDB 集群时,会串行关闭服务,更新服务 binary 和配置文件,再启动服务。在前端配置负载均衡的情况下,滚动升级期间不影响业务运行(最小环境 :pd * 3 、tidb * 2、tikv * 3)。
注: 如果 TiDB 集群开启了 binlog,部署了 pump 和 drainer 服务,升级 TiDB 服务时会升级 pump,请先停止 drainer 服务再执行滚动升级操作。
注: 跨大版本升级,需要更新
tidb-ansible
,从 TiDB 1.0 升级到 TiDB 2.0,请参考 TiDB 2.0 升级操作指南。
-
修改
/home/tidb/tidb-ansible/inventory.ini
中的tidb_version
参数值,指定需要升级的版本号,如从v2.0.2
升级到v2.0.3
tidb_version = v2.0.3
-
删除原有的 downloads 目录
/home/tidb/tidb-ansible/downloads/
$ cd /home/tidb/tidb-ansible $ rm -rf downloads
-
使用 playbook 下载 TiDB
v2.0.3
版本 binary,自动替换 binary 到/home/tidb/tidb-ansible/resource/bin/
$ ansible-playbook local_prepare.yml
-
除 “下载 binary” 中描述的方法之外,也可以手动下载 binary,解压后手动替换 binary 到
/home/tidb/tidb-ansible/resource/bin/
,请注意替换链接中的版本号。wget http://download.pingcap.org/tidb-v2.0.3-linux-amd64-unportable.tar.gz
-
滚动升级 TiKV 节点(只升级 TiKV 服务)
$ ansible-playbook rolling_update.yml --tags=tikv
-
滚动升级 PD 节点(只升级单独 PD 服务)
$ ansible-playbook rolling_update.yml --tags=pd
-
滚动升级 TiDB 节点(只升级单独 TiDB 服务,如果 TiDB 集群开启了 binlog,升级 TiDB 服务时会升级 pump)
$ ansible-playbook rolling_update.yml --tags=tidb
-
滚动升级所有服务(依次升级 PD,TiKV,TiDB 服务,如果 TiDB 集群开启了 binlog,升级 TiDB 服务时会升级 pump)
$ ansible-playbook rolling_update.yml
-
滚动升级监控组件
$ ansible-playbook rolling_update_monitor.yml
- 更新组件配置模板
TiDB 集群组件配置模板存储在 /home/tidb/tidb-ansible/conf
文件夹下。
组件 | 配置文件模板名 |
---|---|
TiDB | tidb.yml |
TiKV | tikv.yml |
PD | pd.yml |
默认配置项是注释状态,使用默认值。如果需要修改,需取消注释,即去除 #
,修改对应参数值。配置模板使用 yaml 格式,注意参数名及参数值之间使用 :
分隔,缩进为两个空格。
如修改 TiKV 配置中 high-concurrency
、normal-concurrency
和 low-concurrency
三个参数为 16:
readpool:
coprocessor:
# Notice: if CPU_NUM > 8, default thread pool size for coprocessors
# will be set to CPU_NUM * 0.8.
high-concurrency: 16
normal-concurrency: 16
low-concurrency: 16
- 修改服务配置后,需使用 Ansible 滚动升级,参考使用 Ansible 滚动升级。