【我和openGauss的故事】openGauss集群故障节点替换操作
ziyoo0830 openGauss 2023-08-07 18:00 发表于中国香港
背景信息
节点故障或者节点替换(主机名和ip与原主机保持一致)的情况下,尝试使用拷贝正常节点的app
二进制文件和om
文件来恢复故障或替换节点,并通过gs_ctl build
[从备机进行build
]来将节点重新加入到现有集群中。
本次验证是在测试环境下,数据库无压力,生产环境请谨慎测试。
集群信息
2023-08-04 07:43:24 [line:905] INFO <module> 94105 [ Cluster State ] cluster_state : Normal redistributing : No current_az : AZ_ALL [ Datanode State ] node node_ip port instance state --------------------------------------------------------------------------------------- 1 pghost3 192.168.56.30 26000 6001 /app/ogdata/data/dn1 P Primary Normal 2 pghost5 192.168.56.50 26000 6002 /app/ogdata/data/dn1 S Standby Normal 3 pghost6 192.168.56.60 26000 6003 /app/ogdata/data/dn1 S Standby Normal
模拟故障
root@pghost6 /app# rm -rf ogdata/ root@pghost6 /app# rm -rf opengauss/ root@pghost6 /app# rm -rf ogxlog/ root@pghost6 /app# rm -rf ogarchive/ kill -9 ${GAUSSDB-PID}
集群状态
omm@pghost3 ~$ gs_om -t status --detail [ Cluster State ] cluster_state : Degraded redistributing : No current_az : AZ_ALL [ Datanode State ] node node_ip port instance state --------------------------------------------------------------------------------------- 1 pghost3 192.168.56.30 26000 6001 /app/ogdata/data/dn1 P Primary Normal 2 pghost5 192.168.56.50 26000 6002 /app/ogdata/data/dn1 S Standby Normal 3 pghost6 192.168.56.60 26000 6003 /app/ogdata/data/dn1 S Unknown Unknown
恢复
安装python3
根据系统情况决定是否需要安装python3
。
拷贝目录及文件
在/etc/hosts
中加入节点的映射关系
omm@pghost6 ~$ more /etc/hosts 127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6 192.168.56.60 pghost6 192.168.56.30 pghost3 192.168.56.50 pghost5
从pghost5
节点拷贝目录到故障节点pghost6
对应目录下。
# pghost6 上创建对应目录 root@pghost6 /app# mkdir opengauss root@pghost6 /app# chown omm: opengauss # 拷贝 app 和 tool 目录 omm@pghost5 /app/opengauss$ scp -r app omm pghost6:/app/opengauss/ omm@pghost5 /app/opengauss$ scp -r tool pghost6:/app/opengauss/
从pghost5
节点拷贝pg_hba.conf
、postgresql.conf
文件到故障节点pghost6
对应目录下。
root@pghost6 /app# mkdir -p ogdata/data/dn1 root@pghost6 /app# chown omm: ogdata/data/dn1/ omm@pghost5 /app/ogdata/data/dn1$ scp pg_hba.conf postgresql.conf pghost6:/app/ogdata/data/dn1/
修改postgresql.conf
对应的值