摘要:誤執行了 rm -rf /* 之後,除了跑路還能怎麼辦?
本文分享自華為雲社群《拯救被 rm -rf 傷到的小夥》,作者:Gauss 松鼠會。
比對一下主備節點的 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 等
俗稱靜態組態檔,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 下主要是 OM 指令碼 (資料庫運維工具),python 語言
如果丟失,可以從其他節點直接 cp(推薦),或者安裝包直接解壓覆蓋,也可以重新執行一遍 gs_preinstall
GAUSSHOME 下主要存放資料庫核心可執行檔案,C/C++ 語言編譯
如果丟失,可以從同叢集其他節點 cp(推薦)或者解壓安裝包中的 bz 壓縮包,由於 GAUSSHOME/bin 目錄下存放了各自的靜態組態檔,需要修改
為啥我都是推薦從其他節點 cp 呢,通過 om 安裝的資料庫會產生證書在每個節點,解壓包是不會產生這些的,如果用到了 openssl,需要手動生成
節點替換與修復一般有兩種場景
這種情況可以先用 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 重磅功能支援主備叢集 - 流式容災搭建即將上線,敬請期待