写点什么

不止跑路,拯救误操作 rm -rf /* 的小伙儿

  • 2022 年 8 月 10 日
    中国香港
  • 本文字数:1617 字

    阅读完需:约 5 分钟

不止跑路,拯救误操作rm -rf /*的小伙儿

本文分享自华为云社区《拯救被rm -rf伤到的小伙》,作者:Gauss 松鼠会。

灵魂画师再次上线


在开饭前我们先了解下两个关键的配置文件

1.数据目录下的 postgresql.conf


比对一下主备节点的 postgresql.conf,应该有以下几个参数不一致


listen_addresses 远程客户端连接使用的数据库主节点ip或者主机名local_bind_address 当前节点连接openGauss其他节点时绑定的本地IP地址replconninfo1      设置本端侦听和鉴权的第一个节点信息,如果备机有2个,就会有replconninfo2log_directory 决定存放服务器日志文件的目录,om初始化安装时命名跟实例id相关audit_directory 审计文件的存储目录,om初始化安装时命名跟实例id相关application_name 连接请求时所使用的客户端名称,om初始化安装时命名跟实例id相关
复制代码


来自踩坑者的 warning:根据某一个节点生成例外一个节点的 postgresql.conf 文件,俗手请按参数逐个修改,不可全量替换,容易改错 ip 等

2.$GAUSSHOME/箱/cluster_static_config


俗称静态配置文件,OM 工具的核心,记录了当前节点和集群的基本信息,二进制结构化文件


可以通过 gs_om -t view 来查看


可以通过 gs_om -t generateconf -X XMLFILE --distribut 重新生成


有静态配置文件,就有动态配置文件 cluster_static_config


动态配置文件最大的作用就是记录了当前节点状态,标记节点主备角色,这样重启的时候知道节点的启动方式


可以通过 gs_om -t refreshconf 生成 只有进行过主备切换才有必要执行这个命令

开胃菜拼盘之备机的数据目录丢失


建立 postgresql.conf 文件后 build 即可


postgresql.conf 可以从主机拷贝后修改,如果日常养成了备份的习惯那就更方便了


gs_om -t status --detail
scp xb01:/data1/zxbog/openGauss/data/dn1/postgresql.conf ./data1/zxbog/openGauss/data/dn2/
gs_ctl build -D /data1/zxbog/openGauss/data/dn2
复制代码


开胃菜拼盘之主机的数据目录丢失


按修复备机的方式肯定是不行滴,需要先备升主,然后按备机方式修复,最后再主备切换


主机 down 的时候,需要在备机 failover 来实现备升主


主机 normal 的时候,需要在备机 switchover 来实现备升主


gs_ctl failover -D /data1/zxbog/openGauss/data/dn2
gs_ctl switchover -D /data1/zxbog/openGauss/data/dn1
复制代码


开胃菜拼盘之 GPHOME/GAUSSHOME 目录丢失


GPHOME 下主要是 OM 脚本(数据库运维工具),python 语言


如果丢失,可以从其他节点直接 cp(推荐),或者安装包直接解压覆盖,也可以重新执行一遍 gs_preinstall


GAUSSHOME 下主要存放数据库内核可执行文件,C/C++语言编译


如果丢失,可以从同集群其他节点 cp(推荐)或者解压安装包中的 bz 压缩包,由于 GAUSSHOME/bin 目录下存放了各自的静态配置文件,需要修改


为啥我都是推荐从其他节点 cp 呢,通过 om 安装的数据库会产生证书在每个节点,解压包是不会产生这些的,如果用到了 openssl,需要手动生成

正菜之节点替换与修复


节点替换与修复一般有两种场景


  1. 机器损坏,需要重新搭建一台,配置比如 ip 都不变

  2. 机器被征用,需要换一台新的机器,ip 地址也变更了


这种情况可以先用 gs_dropnode 删除老的节点,然后通过 gs_expansion 扩新的节点


这两个命令都是要求在主节点下执行,如果要修改主节点,请先主备切换,并刷新静态/动态配置文件

gs_dropnode 需要在普通用户下执行,gs_expansion 需要在 root 用户下执行


[xb0608@xb01 ~]$ gs_dropnode -U xb0608 -G xb0608 -h 192.168.0.26
[root@xb01 script]# /opt/software/script/gs_expansion -U xb0608 -G xb0608 -X ../double.xml -h 192.168.0.26
复制代码



在执行扩节点之前,为减少不必要的麻烦,请确保新的节点足够干净,邪 恶代码如下,谨慎使用


ps -ef|grep ^xb0608|awk '{print $2}'|xargs kill -9 && userdel -r xb0608
rm -rf /data1/zxbog/openGauss/
groupadd xb0608 && useradd xb0608 -g xb0608
passwd xb0608
复制代码

传说中的甜点


如果整个集群都掉了咋办~~既然有主备节点,就可以有主备集群啦


OM 重磅功能支持主备集群-流式容灾搭建即将上线,敬请期待


点击关注,第一时间了解华为云新鲜技术~

发布于: 刚刚阅读数: 3
用户头像

提供全面深入的云计算技术干货 2020.07.14 加入

华为云开发者社区,提供全面深入的云计算前景分析、丰富的技术干货、程序样例,分享华为云前沿资讯动态,方便开发者快速成长与发展,欢迎提问、互动,多方位了解云计算! 传送门:https://bbs.huaweicloud.com/

评论

发布
暂无评论
不止跑路,拯救误操作rm -rf /*的小伙儿_开发_华为云开发者联盟_InfoQ写作社区