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

摘要:誤執行了 rm -rf /* 之後,除了跑路還能怎麼辦?

本文分享自華為雲社區《拯救被 rm -rf 傷到的小伙》,作者:Gauss 松鼠會。

靈魂畫師再次上線

拯救被rm -rf傷到的小伙.gif

 

在開飯前我們先了解下兩個關鍵的配置文件

1. 數據目錄下的 postgresql.conf

比對一下主備節點的 postgresql.conf,應該有以下幾個參數不一致

listen_addresses 遠程客戶端連接使用的資料庫主節點ip或者主機名
local_bind_address 當前節點連接openGauss其他節點時綁定的本地IP地址
replconninfo1      設置本端偵聽和鑒權的第一個節點資訊,如果備機有2個,就會有replconninfo2
log_directory 決定存放伺服器日誌文件的目錄,om初始化安裝時命名跟實例id相關
audit_directory 審計文件的存儲目錄,om初始化安裝時命名跟實例id相關
application_name 連接請求時所使用的客戶端名稱,om初始化安裝時命名跟實例id相關

來自踩坑者的 warning:根據某一個節點生成例外一個節點的 postgresql.conf 文件,俗手請按參數逐個修改,不可全量替換,容易改錯 ip 等

2.$GAUSSHOME/bin/cluster_static_config

俗稱靜態配置文件,OM 工具的核心,記錄了當前節點和集群的基本資訊,二進位結構化文件

可以通過 gs_om -t view 來查看

可以通過 gs_om -t generateconf -X XMLFILE –distribute 重新生成

有靜態配置文件,就有動態配置文件 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

build.gif 

開胃菜拼盤之主機的數據目錄丟失

按修復備機的方式肯定是不行滴,需要先備升主,然後按備機方式修復,最後再主備切換
主機 down 的時候,需要在備機 failover 來實現備升主
主機 normal 的時候,需要在備機 switchover 來實現備升主

gs_ctl failover -D /data1/zxbog/openGauss/data/dn2
gs_ctl switchover -D /data1/zxbog/openGauss/data/dn1

build主機.gif 

開胃菜拼盤之 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

節點替換恢復.gif 

 在執行擴節點之前,為減少不必要的麻煩,請確保新的節點足夠乾淨,邪 惡程式碼如下,謹慎使用
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 重磅功能支援主備集群 – 流式容災搭建即將上線,敬請期待

 

點擊關注,第一時間了解華為雲新鮮技術~