资讯专栏INFORMATION COLUMN

TiDB扩容与缩容

IT那活儿 / 2737人阅读
TiDB扩容与缩容

使用TiDB Ansible 扩容缩容TiDB 集群,可以在不影响线上服务的情况下进行扩容和缩容。本文带大家走进TiDB的扩缩容场景实验。


当前tidb拓扑结构如下:

Name

Host ip

Service

Ti1

192.168.37.132

Tidb,pd

Ti2

192.168.37.128

Tikv1

Ti3

192.168.37.129

Tikv2

Ti4

192.168.37.130

Tikv3


[
扩容
]


1、扩容tidb/tikv(可使用同样的步骤添加 TiKV 节点,tikv不演示)扩容tidb节点(IP:192.168.37.131)


  1. 编辑 inventory.ini 文件,添加节点信息:


  1. 初始化新增节点:

ansible-playbookbootstrap.yml -l 192.168.37.131


  1. 部署新增节点:

ansible-playbookdeploy.yml -l 192.168.37.131


  1. 启动新节点服务:

ansible-playbookstart.yml -l  192.168.37.131


  1. 更新 Prometheus 配置并重启:

ansible-playbookrolling_update_monitor.yml --tags=prometheus


  1. 打开浏览器访问监控平台:http://192.168.37.132:3000,监控整个集群和新增节点的状态

可以看到新扩容tidb节点已添加到tidb集群,tidb扩容成功。


2、扩容pd

  1. 编辑 inventory.ini 文件,添加节点信息:

本次添加pd节点(192.168.37.133)


  1. 初始化新增节点:

ansible-playbookbootstrap.yml -l 192.168.37.133


  1. 部署新增节点:

ansible-playbookdeploy.yml -l 192.168.37.133


  1. 登录新增的 PD 节点,编辑启动脚本:{deploy_dir}/scripts/run_pd.sh


D1:移除--initial-cluster="xxxx" 配置,注意这里不能在行开头加注释符#。

D2:添加 --join="http://192.168.37.132:2379" ,IP地址(192.168.37.132)可以是集群内现有PD IP 地址中的任意一个。

D3: 在新增PD 节点中手动启动PD 服务:

{deploy_dir}/scripts/start_pd.sh

D4: 使用pd-ctl 检查新节点是否添加成功:

/home/tidb/tidb-ansible/resources/bin/pd-ctl-u "http://192.168.37.132:2379" -d member

可以看到pd节点已添加pd集群里面。


  1. 滚动升级整个集群(耗时很长,按照我的机器配置添加一个节点,需要10分钟左右):

ansible-playbookrolling_update.yml


  1. 启动监控服务:

ansible-playbookstart.yml -l 192.168.37.133


  1. 更新 Prometheus 配置并重启:

ansible-playbookrolling_update_monitor.yml --tags=prometheus


  1. 打开浏览器访问监控平台:http://192.168.37.132:3000,监控整个集群和新增节点的状态


从监控面班可以看到,pd已扩容成功。


[
缩容
]


1、缩容tidb


移除tidb节点(192.168.37.131)

  1. 停止节点上的服务

ansible-playbookstop.yml -l 192.168.37.131


  1. 编辑 inventory.ini 文件,移除节点信息(这两个位置)


  1. 更新 Prometheus 配置并重启:

ansible-playbookrolling_update_monitor.yml --tags=prometheus


  1. 打开浏览器访问监控平台:http://192.168.37.132:3000,监控整个集群和新增节点的状态


192.168.37.131节点信息已没有了,缩容成功。


2、缩容tikv


缩容tikv(192.168.37.131)

  1. 使用 pd-ctl 从集群中移除节点


A1:查看192.168.37.131节点的store id

/home/tidb/tidb-ansible/resources/bin/pd-ctl-u "http://192.168.37.132:2379" -d store (通过pdip接口)


A2:从集群中移除192.168.37.131节点

/home/tidb/tidb-ansible/resources/bin/pd-ctl-u "http://192.168.37.132:2379" -d store delete 1


  1. 使用 Grafana 或者 pd-ctl 检查节点是否下线成功

/home/tidb/tidb-ansible/resources/bin/pd-ctl-u "http://192.168.37.132:2379" -d store delete 1


  1. 下线成功后,停止节点(192.168.37.131)上的服务

ansible-playbookstop.yml -l 192.168.37.131


  1. 编辑 inventory.ini 文件,移除节点信息

注释掉要缩容的tikv节点

  1. 更新 Prometheus 配置并重启


ansible-playbookrolling_update_monitor.yml --tags=prometheus


  1. 打开浏览器访问监控平台:http://192.168.37.132:3000,监控整个集群和新增节点的状态

查看监控列表发现192.168.37.131已缩容。


3、缩容pd


缩容pd(192.168.37.133)

  1. 使用 pd-ctl 从集群中移除节点


A1:查看node2 节点的name

/home/tidb/tidb-ansible/resources/bin/pd-ctl-u "http://192.168.37.132:2379" -d member


A2:从集群中移除node2,假如name 为pd2

/home/tidb/tidb-ansible/resources/bin/pd-ctl-u "http://192.168.37.132:2379" -d member delete namepd_ti5


  1. 使用 pd-ctl 检查节点是否下线成功(PD 下线会很快,结果中没有192.168.37.133节点信息即为下线成功)

/home/tidb/tidb-ansible/resources/bin/pd-ctl -u"http://192.168.37.132:2379" -d member

  1. 下线成功后,停止192.168.37.133上的服务

ansible-playbook stop.yml -l 192.168.37.133


  1. 编辑 inventory.ini 文件,移除节点信息

把192.168.37.133注释掉


  1. 滚动升级整个集群

ansible-playbookrolling_update.yml


  1. 更新 Prometheus 配置并重启

ansible-playbookrolling_update_monitor.yml --tags=prometheus


  1. 打开浏览器访问监控平台:http://192.168.37.132:3000,监控整个集群和新增节点的状态

192.168.37.133的PD已缩容。

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/130143.html

相关文章

  • 银行交易系统 TiDB 在线缩容迁移

    摘要:临近年中,银行重要系统的建设进入投产冲刺阶段,本次上线又有多个系统对接,为了优化集群资源分配,引发了这次分享的主题线上系统的缩容的迁移,本文主要针对本次的缩容迁移过程进行梳理总结。 作者:Dan本文转载自公众号「白噪声OG」。 经历了上礼拜漫长的上线周期,终于有时间总结一下期间发生的故事。TiDB 是一款非常优秀的国产分布式 NewSQL 数据库,因其支持水平扩展性、强一致性、高可用性...

    suemi 评论0 收藏0
  • Cloud + TiDB 技术解读

    摘要:作为一个开源的分布式数据库产品,具有多副本强一致性的同时能够根据业务需求非常方便的进行弹性伸缩,并且扩缩容期间对上层业务无感知。另外本身维护了数据多副本,这点和分布式文件系统的多副本是有重复的。 作者:邓栓来源:细说云计算 作为一款定位在 Cloud-native 的数据库,现如今 TiDB 在云整合上已取得了阶段性的进展。日前 Cloud TiDB 产品在 UCloud 平台正式开启...

    JouyPub 评论0 收藏0

发表评论

0条评论

IT那活儿

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<