不止跑路,拯救誤操作rm -rf /*的小伙兒
摘要:誤執行了 rm -rf /* 之後,除了跑路還能怎麼辦?
本文分享自華為雲社區《拯救被 rm -rf 傷到的小伙》,作者:Gauss 松鼠會。
靈魂畫師再次上線
在開飯前我們先了解下兩個關鍵的配置文件
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
開胃菜拼盤之主機的數據目錄丟失
按修復備機的方式肯定是不行滴,需要先備升主,然後按備機方式修復,最後再主備切換
主機 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,需要手動生成
正菜之節點替換與修復
節點替換與修復一般有兩種場景
- 機器損壞,需要重新搭建一台,配置比如 ip 都不變
- 機器被徵用,需要換一台新的機器,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 重磅功能支援主備集群 – 流式容災搭建即將上線,敬請期待