首先,再確認一下目前 Cluster 的狀態:
[root]# /usr/efm-2.0/bin/efm cluster-status efm Cluster Status: efm Agent Type Address Agent DB Info -------------------------------------------------------------- Master 192.168.57.102 UP UP Witness 192.168.57.101 UP N/A Standby 192.168.57.103 UP UP Allowed node host list: 192.168.57.102 192.168.57.103 192.168.57.101 Standby priority host list: 192.168.57.103 Promote Status: DB Type Address XLog Loc Info -------------------------------------------------------------- Master 192.168.57.102 0/F01A4B8 Standby 192.168.57.103 0/F01A4B8 Standby database(s) in sync with master. It is safe to promote.
最後一行告訴我們,此時的 Cluster 能夠拿來作資料庫切換。
要模擬 primary 主機有異常,最簡單的方式就是強制中止 primary 上的 PostgreSQL 程序,或者也可以直接關掉 primary 主機的 VM。
關掉 primary 主機之後,EFM Cluster 便無法再檢查到 primary 主機上的 EFM agent 與 資料庫,依照在設定檔內所設定的檢查間隔,local.period、 local.timeout、local.timeout.final三個設定,檢查完畢確認 Primary 主機無法服務之後,便會開始切換過程:
[root]# /usr/efm-2.0/bin/efm cluster-status efm
Cluster Status: efm
Agent Type Address Agent DB Info
--------------------------------------------------------------
Idle 192.168.56.102 UP UNKNOWN
Promoting 192.168.56.103 UP UP
Witness 192.168.56.101 UP N/A
Allowed node host list:
192.168.56.102 192.168.56.103 192.168.56.101
Standby priority host list:
192.168.56.103
Promote Status:
DB Type Address XLog Loc Info
--------------------------------------------------------------
Master 192.168.56.103 0/D0483C8
No standby databases were found.
Idle Node Status (idle nodes ignored in XLog location comparisons):
Address XLog Loc Info
--------------------------------------------------------------
192.168.56.102 0/D0482C0 DB is not in recovery.
到這裡,原先的 Standby 主機已經接替了下線的 primary 主機的工作,並且 EFM Cluster 也寄信告訴你資料庫發生異常了:
當收到信之後,就準備要開始重新啟動整個備份了:
再恢復整個資料庫設置的方式,就是
(1) 以現在的主機作為新的 primary(上面的 192.168.56.103),而已經下線的機器啟動成為新的 standby(上面的 192.168.56.102),建立之間的 streaming replication
(2) 再啟動上的 EFM agent:
[root@old_primary]# efm resume efm Resume command successful on local agent.
這樣,整個 EFM Cluster 便恢復了。
最後,當試用期過了之後,要再啟動 EFM Cluster 就會收到如下訊息:
告訴你這次的遊戲結束了,請再投幣囉
沒有留言:
張貼留言