TIDB 集群升级(3.0.0 -> 3.0.1)

1.前言

  • 上篇博文介绍了 “如何部署 TIDB 集群“,但是如果按照官方推荐的集群配置部署,可能会让很多朋友望而却步。如果我们只是想部署个测试用的,学习下或者练练手,其实我们可以使用很经济的方式搭建集群。
  • 我实验了一些方式后,发现我们可以只用买4台服务器就可以搭建一个 TIDB 集群。
  • 每个机器50 GB磁盘就够用了,而且只用给主控机器设置公网IP,其余可以内网互通就行。4台服务器300一个月可以搞定。
  • 购买了4台服务器后,我们新的 TIDB 拓扑结构为:tidb、pd、monitoring、grafana 都放在带公网IP的那台服务器上,其余三台都用于 tikv  。
  • 参考文件:hosts.ini   inventory.ini
  • Tips: 使用上述的配置在启动集群时会遇到通不过 tidb 检查的问题,解决方式是:根据不同的错误提示,全局搜索定位,注释掉对应的检查项就OK了。

2.环境验证

  • 在集群搭建完成,且访问 ip:3000 网址正常后。我们在主控机上安装 mysql 客户端,然后通过 mysql 客户端连接到 tidb 查看版本。
# 安装 mysql 
sudo yum install mysql -y

# 使用 mysql 客户端登陆 tidb
mysql -u root -P4000 -h127.0.0.1

// 在 mysql 客户端中执行
select tidb_version();

3.环境预处理

  • 为了保证升级失败可以立即回滚,建立保留原 ansible 文件夹。新版本的 ansible 用新的文件夹存放。
# 克隆新版本 tidb-ansible
git clone -b v3.0.1 https://github.com/pingcap/tidb-ansible.git tidb-ansible-v3.0.1

# 进入到 tidb-ansible 文件夹中
cd tidb-ansible-v3.0.1/

# 复制一些在旧版本中做过修改的文件(减少重复编写工作量)
cp ~/tidb-ansible-v3.0.0/hosts.ini .
cp ~/tidb-ansible-v3.0.0/inventory.ini .

cp ~/tidb-ansible-v3.0.0/bootstrap.yml .
cp ~/tidb-ansible-v3.0.0/roles/check_system_dynamic/tasks/main.yml roles/check_system_dynamic/tasks/main.yml
cp ~/tidb-ansible-v3.0.0/roles/tikv/tasks/check_filesystem.yml roles/tikv/tasks/check_filesystem.yml

# 修改 inventory.ini (重点)
vim inventory.ini 

// tidb_version = v3.0.0 -> tidb_version = v3.0.1

# 初始化环境
ansible-playbook local_prepare.yml

4.开始更新

# 执行更新
ansible-playbook rolling_update.yml

5.测试/检查

  • 检查端口是否正常
# 查看端口
netstat -tnpl
  • 使用 mysql 客户端连接 tidb,查看 tidb 版本
# 进入 tidb 数据库
mysql -u root -P4000 -h127.0.0.1

// 查看版本
select version();
  • 查看监控页面

End. 👻

Show Comments