1. 程式人生 > >tidb叢集pd節點故障下線、修復上線過程記錄

tidb叢集pd節點故障下線、修復上線過程記錄

1、移除pd節點

https://pingcap.com/docs-cn/op-guide/ansible-deployment-scale/
1)檢視 node3 節點的 name:/data0/tidb-ansible-2.1-rc.3/resources/bin/pd-ctl  -u "http://172.168.8.43:2379" -d member
2)移除節點 /data0/tidb-ansible-2.1-rc.3/resources/bin/pd-ctl -u "http://172.168.8.43:2379" -d member delete name pd3
3)下線成功後,停止 node3 上的服務:ansible-playbook stop.yml -l 172.168.8.24
4)編輯 inventory.ini 檔案,移除節點資訊:
5)滾動升級叢集 ansible-playbook rolling_update.yml -f 30
6)更新 Prometheus 配置並重啟:

2、新增pd節點

1)編輯 inventory.ini 檔案,新增節點資訊置於 [pd_servers] 主機組最後一行:
2)初始化新增節點, ansible-playbook bootstrap.yml -l 172.168.8.24
3)部署新節點,ansible-playbook deploy.yml -l 172.168.8.24
4)登陸新增的pd節點,編輯啟動指令碼:{deploy_dir}/scripts/run_pd.sh
4.1)移除 --initial-cluster="xxxx" \ 配置。
4.2)新增 --join="http://172.168.8.24:2379" \,IP 地址 (172.16.10.1) 可以是叢集內現有 PD IP 地址中的任意一個。
[

[email protected]] /data0/tidb/deploy/scripts$ vim 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=/data0/tidb/deploy

cd "${DEPLOY_DIR}" || exit 1


exec bin/pd-server \
--name="pd3" \
--client-urls="http://172.168.8.24:2379" \
--advertise-client-urls="http://172.168.8.24:2379" \
--peer-urls="http://172.168.8.24:2380" \
--advertise-peer-urls="http://172.168.8.24:2380" \
--data-dir="/data0/tidb/deploy/data.pd" \
--join="http://172.168.8.43:2379" \
#--initial-cluster="pd1=http://172.168.8.43:2380,pd2=http://172.168.8.48:2380,pd3=http://172.168.8.24:2380" \
--config=conf/pd.toml \
--log-file="/data0/tidb/deploy/log/pd.log" 2>> "/data0/tidb/deploy/log/pd_stderr.log"


4.3)在新增 PD 節點中手動啟動 PD 服務:{deploy_dir}/scripts/start_pd.sh
4.4)在原來的pd中控機上,使用 pd-ctl 檢查新節點是否新增成功:
/data0/tidb-ansible-2.1-rc.3/resources/bin/pd-ctl -u "http://172.168.8.43:2379" -d member
{
"header": {
"cluster_id": 6571299051475546645
},
"members": [
{
"name": "pd3",
"member_id": 1593382661436092983,
"peer_urls": [
"http://172.168.8.24:2380"
],
"client_urls": [
"http://172.168.8.24:2379"
]
},

5)滾動升級整個叢集 ansible-playbook rolling_update.yml -f 30
6)更新 Prometheus 配置並重啟:ansible-playbook rolling_update_monitor.yml --tags=prometheus

 

三、環境記錄:

tidb叢集版本:v2.1-rc.3

pd節點數:3個