为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。
- 【TiDB 版本】:
3.0.4 - 【问题描述】:
一个tidb集群,3个节点的pd,其中有一个节点故障,无法启动,我如何新加入一个节点把故障这个节点彻底丢弃呢,按这个文章里面扩容节点无法启动
https://pingcap.com/docs-cn/stable/how-to/scale/with-ansible/
若提问为性能优化、故障排查类问题,请下载脚本运行。终端输出的打印结果,请务必全选并复制粘贴上传。
为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。
麻烦您上传一下,无法启动的那个 pd 的日志呢。
刚才看了一下启动成功了,只是日志里面有报错,但是现在执行ansible-playbook rolling_update.yml这边报错了,我这边描述下我的操作步骤:
一、环境说明
pd集群信息:
172.21.184.43(故障,无法启动,需要彻底下线)
172.21.184.44
172.21.184.45
172.21.184.49(新增的节点)
二、操作步骤
1、 编辑 inventory.ini
文件,添加节点信息置于 [pd_servers]
主机组最后一行添加172.21.184.49
2、部署新增节点,这步上面没有初始化机器,是因为这个机器上部署了tidb,已经初始化过了
ansible-playbook deploy.yml --tags=pd -l 172.21.184.49
3、 登录新增的 PD 节点,编辑启动脚本: {deploy_dir}/scripts/run_pd.sh
a. 移除 --initial-cluster="xxxx"
配置,注意这里不能在行开头加注释符 #。
b. 添加 --join="http://172.21.184.44:2379"
看你的 member 结果现在有四个 Pd 节点,43节点先下线吧。这个报错有可能跟那个没下线的节点有关,还要去确认下
http://{{ ansible_host }}:{{ pd_client_port }}/pd/health 这个命令看一下吧
一个三节点的pd集群,如果有一台故障无法恢复,需要新添加一台节点,正确的姿势是咋样的? 官网的这个文档说的不清楚,https://pingcap.com/docs-cn/stable/how-to/scale/with-ansible/
ansible-playbook rolling_update.yml
ansible-playbook rolling_update_monitor.yml --tags=prometheus
上面这两步都执行正常,但是在监控页面看不到新加的pd节点
hello~ Instance 里面记录的是做过 leader 角色 PD ,所以这个如果新加入的 PD 不是 leader,就不会在这里面出现的。
注意 instance 选择的是 PD leader 节点,follower 节点的信息不准的。
我看了一下我这里3个集群的pd监控,所有节点都是follower角色,没有leader,是不是我集群的监控都有问题了,
目前 PD 状态为 follower 这个不是预期的,应该是状态显示问题。但是其他的数据应该是准确的,可以再观察一下,也可能 PD 信息状态在 Prometheus 没有同步完成。
调整一下这个监控项的查询语句 将 “count(delta(pd_tso_events{type=“save”,instance="$instance"}[1m]))” 修改为 “count(delta(pd_server_tso{type=“save”,instance="$instance"}[1m]))”
是的,我们已经提 issue,可以关注一下这个 issue 的进展 https://github.com/pingcap/pd/issues/2003 。 如果有新的问题麻烦单独提问,以为问题信息混乱。
感谢感谢