tidb3.0.8 扩容

为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。

  • 【TiDB 版本】:3.0.8
  • 【问题描述】:您好,扩容tidb集群中的tidb节点,是使用的新增服务器。 已经在新服务器创建好tidb用户。 可以在中控服务器上面执行

ansible-playbook -i hosts.ini create_users.yml -u root -k

来添加所有服务器的互信吗,会不会对原集群有影响

若提问为性能优化、故障排查类问题,请下载脚本运行。终端输出的打印结果,请务必全选并复制粘贴上传。

没有影响的。如果比较担心会有影响,在 hosts.ini 中只留下新增 服务器的 IP 即可。

我添加节点成功, 添加的是tidb节点

但是在文件inventory.ini中, monitored_servers 忘记了新增新的服务器IP。

需要使用什么命令,才能将新服务器10.8.48.207新增到grafana监控中呢

检查新增节点的 deploy/bin 目录下是否有 blackbox_exporter、node_exporter

尝试按照以下方式操作

如果该节点没有对外提供服务,建议重新执行扩容操作,比较方便。

目录下没有这些文件。

重新扩容,是只需要重新执行下面的命令就可以了吗

ansible-playbook bootstrap.yml -l IP
ansible-playbook deploy.yml -l  IP
ansible-playbook start.yml -l  IP
ansible-playbook rolling_update_monitor.yml --tags=prometheus

对的。按照官网操作即可。

重新操作 ansible-playbook deploy.yml -l IP,报错如下

fatal: [10.8.48.206]: FAILED! => {“changed”: false, “msg”: “Failed to find handler for “/home/tidb/.ansible/tmp/ansible-tmp-1578390312.19-275392604665652/source”. Make sure the required command to extract the file is installed. Command “/usr/bin/unzip” could not han dle archive. Command “/usr/bin/gtar” could not handle archive.”}

我把新节点上的tidb进程停止、文件删除,重新执行,仍然一样的错误。

但是在新节点上,错误日志中的两个文件都存在的 image

这个节点只有tidb服务对吗? 按照文档,先缩容这个节点的tidb服务,再重新安装,缩容的时候,把monitor里的这个节点删掉,保持和你扩容前一样即可. https://pingcap.com/docs-cn/stable/how-to/scale/with-ansible/

你好,我先缩容,再扩容,报下面的错误

fatal: [10.8.48.206]: FAILED! => {“changed”: false, “elapsed”: 300, “msg”: “the TiDB port 4000 is not up”}

在206新tidb节点上,没有任何错误信息,服务器上4000端口也没有被占用

  1. 确认 tidb service 是否已经启动 ? 需要确认 systemd tidb-4000.service 服务状态;
  2. 确认 /etc/systemd/system 中 tidb-4000.service 里面对应启动的命令是否和部署一直;
  3. 确认 tidb log 和 journal -u tidb-4000.service 的日志报错。

我先缩容,再扩容,执行

ansible-playbook deploy.yml -l 10.8.48.206

还是报相同的错误

麻烦再帮忙指点一下,谢谢

  1. 确认一下是否有 tidb-insight 的压缩包;
  2. 确认报错操作是否可以手工执行。

1 我在新服务器上面,并没有找到tidb-insight压缩包 2 我在新服务器,上面也没有找到报错的那个执行脚本呢

https://github.com/pingcap/tidb-ansible/blob/master/roles/collect_diagnosis/tasks/main.yml#L3-L7 根据脚本看,应该是将中控机中的 {{ downloads_dir }}/tidb-insight.tar.gz 通过 ansible 模块将 tidb-insight 解压到 {{ deploy_dir }}/scripts/ 目录下面,用来后面使用 tidb-insight 进行数据收集的操作。所以如果中控机中没有这个 tidb-insight.tar.gz ,可能会执行报错。如果没有,需要通过 ansible-playbook localprepare.yml来下载一下。

这个文件,在中控机器上是存在的

那验证一下能不能手工解压

我手动使用命令

tar zxvf tidb-insight.tar.gz

文件不能正常解压,

请问有3.0.8的这个文件的单独下载路径吗

那可能是 tar 有损,重新下载试一下吧。

用命令ansible-playbook local_prepare.yml 下载所有包,比较慢,而且基本上白天下载都是超时

有单独下载tidb-insight.tar.gz的连接,方便提供一个吗

这个不太方便,你可以自行下载一下。

https://github.com/pingcap/tidb-ansible/blob/master/roles/local/templates/common_packages.yml.j2#L29-L33