目錄

簡介

必要條件

需求

採用元件

背景資訊

問題

錯誤日誌

解決方案

簡介

本文檔介紹當MGMTPOSTGRES_SLAVE未與MGMTPOSTGRESS_MASTER形成群集時，如何恢復MGMTPOSTGRES_SLAVE。

必要條件

需求

思科建議您瞭解以下主題：

- Linux介面

- 虛擬機器環境

- postgresql

- 心臟起搏器/Corosync組態系統(PCS)

採用元件

本檔案中的資訊是根據以下軟體版本：

- CloudCenter 4.8.1.1版

- MGMTPOSTGRES_SLAVE元件

- MGMTPOSTGRES_MASTER元件

本文中的資訊是根據特定實驗室環境內的裝置所建立。文中使用到的所有裝置皆從已清除（預設）的組態來啟動。如果您的網路運作中，請確保您瞭解任何指令可能造成的影響。

背景資訊

如果兩個MGMTPOSTGRES元件均出現故障，則MGMTPOSTGRES_SLAVE不再與MGMTPOSTGRES_MASTER形成群集。

問題

MGMTPOSTGRES_SLAVE未與MGMTPOSTGRES_MASTER形成群集。為了讓兩個MGMTPOSTGRES形成群集，需要刪除MGMTPOSTGRES_SLAVE資料庫。然後，將從MGMTPOSTGRES_MASTER恢複資料庫。

錯誤日誌

[root@mgmtpostgres_master etc]# pcs status

Cluster name: cliqrdbcluster

Stack: corosync

Current DC: dbmaster (version 1.1.15-11.e174ec8) – partition with quorum

Last updated: Mon Nov 13 19:15:30 2017                 Last changed: Mon Nov 13 16:59:51 2017 by root via crm_attribute on db master

2 nodes and 3 resources configured

Online: [ dbmaster dbslave ]

Full list of resrouces:

Resrouce Group: VIPGroup

PGMasterVIP             (ocf::heartbeat:IPaddr2):                    Started dbmaster

Master/Slave Set: mspostgresql [pgsql]

Masters: [ dbmaster ]

Stopped: [ dbslave ]

Failed Actions:

* pgsql_start_0 on dbslave ‘unknown error’ (1): call=11, status=Timed Out, exitreason=’none’,

last-rc-change=’Mon Nov 13 18:15:25 2017’, queued-0ms, exec=60003ms

Daemon Status:

corosyn: active/disabled

pacemaker: active/enabled

pcsd: inactive/disabled

解決方案

繼續恢復MGMTPOSTGRES_SLAVE資料庫，以便MGMTPOSTGRES形成群集。

步驟1.在MGMTPOSTGRES_MASTER中，確保集群已停止。

pcs cluster stop

pcs status

步驟2.在MGMTPOSTGRES_SLAVE中，刪除現有資料庫。

rm -rf /var/lib/pgsql/9.5/data/*

步驟3.在MGMTPOSTGRES_MASTER中，再次啟動群集。

pcs cluster start

pcs status

步驟4.在MGMTPOSTGRES_SLAVE中，從MGMTPOSTGRES_MASTER恢複資料庫。

/usr/pgsql-9.5/bin/pg_basebackup -h <MGMTPOSTGRES_MASTER-IP> -D /var/lib/pgsql/9.5/data/ -U replication -v -P --xlog-method=stream

步驟5.在MGMTPOSTGRES_SLAVE中，更改已恢複資料庫的所有權。

chown postgres:postgres -R /var/lib/pgsql/9.5/data/*

步驟6.在MGMTPOSTGRES_SLAVE中，啟動群集。

pcs cluster start

pcs cluster status

步驟7.在MGMTPOSTGRES_MASTER中，清理資源並檢查群集狀態。

pcs resource cleanup

pcs cluster status

步驟8.在MGMTPOSTGRES_MASTER中，驗證是否存在複製（查詢MGMTPOSTGRES_SLAVE IP中的IP）。

ps –ef | grep postgr