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

2022-08-10 12:05:50
摘要:誤執行了 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 重磅功能支援主備叢集 - 流式容災搭建即將上線,敬請期待

 

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