在作業環境中,我們可能會遇到主機硬體損壞無法在短時間內修復,故障主機的primary和mirror實體無法使用,此時屬于該主機的primary實體是單實體狀態,如果單實體再次宕機集群將變成"雙宕”,無法使用有很大的風險,
這時就需要用到備機替換,用一臺正常主機替換故障主機,具體步驟如下,
前提條件:此文章所用的主機“正常主機”是之前被替換下來的備機,所以環境都是準備好的,如果是一臺剛裝好的主機,需要按照安裝教程,一直做到資料庫初始化的上一步,
集群正常運行,無實體宕機,
用gps01(192.168.210.11,備)替換gps02(192.168.210.35,舊)
1.核查兩臺主機的檔案內容是否一致,如果不一致以舊主機為主修改,
cat /etc/security/limits.conf
cat /etc/security/limits.d/20-nproc.conf
cat /etc/selinux/config
cat /etc/sysctl.conf
資料庫安裝目錄版本
2.備機不能有gp實體在運行,元資料目錄不能有殘留檔案,
gps01無greenplum實體

data1 data2目錄下有殘留檔案

3.登錄gps01修改主機名
sudo hostname gps02
sudo cp /etc/sysconfig/network /etc/sysconfig/network220615. bak
sudo vi /etc/sysconfig/network
NETWORKING=yes
HOSTNAME= gps02
hostnamectl --static set-hostname gps02
重新連接主機使修改生效
4.備份集群所有主機的/etc/hosts檔案(在master節點)
gpssh -f all_hosts
=> sudo cp /etc/hosts /etc/hosts.bak220615
=> exit
單獨備份備機hosts檔案(備機操作)
sudo cp /etc/hosts /etc/hosts.bak220615
5.修改hosts檔案,
sudo vi /etc/hosts
將原本的
192.168.210.35 gps02
更改為
192.168.210.11 gps02
這一步用sudo權限輸入root密碼,或者做主機間root用戶的互信傳檔案,生產上嘗試能否傳輸到/etc下 不能直接傳的話 就先傳到家目錄下 再sudo覆寫
gpscp -f ~/all_hosts /etc/hosts =:/etc/hosts
備機單獨傳輸
scp /etc/hosts 192.168.210.11: /etc/hosts
確認hosts檔案分發成功(在master節點),備機單獨確認,
gpssh -f ~/all_hosts
=>cat /etc/hosts | grep gps02
=>exit
7.集群做互信(將master主機的hosts檔案中的ip修改后就可以做互信)
先將master的known_hosts檔案重命名 再做互信
cd /home/gpadmin/.ssh
mv known_hosts known_hosts220615.bak
gpssh-exkeys -f ~/all_hosts
8.查看元資料目錄路徑,確認建立相應的檔案(root權限,master主機)
1.先查到gps02主機的dbid

2.再根據dbid查路徑,

9.在gps01(備)建立目錄,并修改權限,
mkdir -p /data1/primary/default
mkdir -p /data1/mirror/default
mkdir -p /data1/primary/gpfs
mkdir -p /data1/mirror/gpfs
mkdir -p /data2/primary/default
mkdir -p /data2/mirror/default
mkdir -p /data2/primary/gpfs
mkdir -p /data2/mirror/gpfs
chown -R gpadmin:gpadmin /data*
10.聯系應用側停調度進行全量恢復(在master節點),需要先將gps02(192.168.210.35)上的實體全部宕停192.168.210.11上如果有gp的實體也需全部宕停,
192.168.210.11上無實體
11.將殘余行程清理干凈
psql -c “chekpoint”
gpstop -M fast
12.以維護模式啟動資料庫
gpstart -R
gprecoverseg -F
使用gpstate -e查看同步進度
13.等到資料同步完成需要重啟資料庫切換角色(gp4版本)
停止資料庫
gpstop
14.啟動資料庫gpstart
查看資料庫狀態確認沒問題gpstate -e
可能會遇到的問題:
備機替換無法建立互信,需要輸入密碼,可能是master節點的known_hosts有舊的主機互信,需嘗試洗掉,
如果發現宕停的實體不足12個,嘗試重啟主機恢復正常,
如果發現有的主機不能傳檔案,可能是scp命令沒有x權限,賦權即可,
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/544655.html
標籤:其它
