TiDB 3.0.2 PD扩容 [error] rafthttp: [request sent was ignored (cluster ID mismatch: remote[

感谢你的帮助,我把最终的解决方法,分享出来,大体上都是根据官方文件做的,这里只多了一个细节操作




扩容 PD 节点

目标: 加入新节点 172.160.180.18

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

  2. 清空pd缓存(如果之前没安装,就跳过此步)

[tidb@test1 tidb-ansible]$ ansible-playbook unsafe_cleanup.yml --tags=pd -l 172.160.180.18
  1. 重新部署
[tidb@test1 tidb-ansible]$ ansible-playbook bootstrap.yml -l 172.160.180.18 --extra-vars "dev_mode=True"

Congrats! All goes well. :-)
[tidb@test1 tidb-ansible]$
[tidb@test1 tidb-ansible]$
[tidb@test1 tidb-ansible]$
[tidb@test1 tidb-ansible]$
[tidb@test1 tidb-ansible]$ ansible-playbook deploy.yml --tags=pd -l 172.160.180.18

Congrats! All goes well. :-)
[tidb@test1 tidb-ansible]$
  1. 进入节点机 test4, 修改节点机配置
# 例子
......
exec bin/pd-server 
    --name="pd_test4" 
    --client-urls="http://172.160.180.18:2379" 
    --advertise-client-urls="http://172.160.180.18:2379" 
    --peer-urls="http://172.160.180.18:2380" 
    --advertise-peer-urls="http://172.160.180.18:2380" 
    --data-dir="/home/tidb/deploy/data.pd" 
    --initial-cluster="pd_test1=http://172.160.180.46:2380,pd_test2=http://172.160.180.47:2380,pd_test3=http://172.160.180.48:2380,pd_test4=http://172.160.180.18:2380"  # 删除这一行,不可以使用注释,要直接删除
    --join="http://172.160.180.48:2379"   # 替换为这一行,IP地址是现有PD集群中的任意一个即可
    --config=conf/pd.toml 
    --log-file="/home/tidb/deploy/log/pd.log" 2>> "/home/tidb/deploy/log/pd_stderr.log"
......
[tidb@test4 ~]$ vim /home/tidb/deploy/scripts/run_pd.sh
#!/bin/bash
set -e
ulimit -n 1000000

# WARNING: This file was auto-generated. Do not edit!
#          All your edit might be overwritten!
DEPLOY_DIR=/home/tidb/deploy

cd "${DEPLOY_DIR}" || exit 1



exec bin/pd-server 
    --name="pd_test4" 
    --client-urls="http://172.160.180.18:2379" 
    --advertise-client-urls="http://172.160.180.18:2379" 
    --peer-urls="http://172.160.180.18:2380" 
    --advertise-peer-urls="http://172.160.180.18:2380" 
    --data-dir="/home/tidb/deploy/data.pd" 
    --join="http://172.160.180.48:2379" 
    --config=conf/pd.toml 
    --log-file="/home/tidb/deploy/log/pd.log" 2>> "/home/tidb/deploy/log/pd_stderr.log"
  1. 删除缓存节点机中的缓存数据(如果之前没安装,就跳过此步)
# 删除缓存数据
[tidb@test4 ~]$ rm -rf /home/tidb/deploy/data.pd/
# 删除历史pd.log
[tidb@test4 ~]$ rm -rf /home/tidb/deploy/log/pd*
  1. 启动pd
[tidb@test4 ~]$ /home/tidb/deploy/scripts/start_pd.sh
  1. 进入主控机,查看PD节点是否成功加入
[tidb@test1 tidb-ansible]$ /home/tidb/tidb-ansible/resources/bin/pd-ctl -u "http://172.160.180.46:2379" -d member
  1. 滚动升级整个集群
[tidb@test1 tidb-ansible]$ ansible-playbook rolling_update.yml
  1. 启动PD
[tidb@test1 tidb-ansible]$ ansible-playbook start.yml --tags=pd -l 172.160.180.18
  1. 更新监控
[tidb@test1 tidb-ansible]$ ansible-playbook rolling_update_monitor.yml --tags=prometheus
3 个赞