目录

简介

先决条件

要求

使用的组件

背景信息

问题

错误日志

解决方案

简介

本文档介绍当MGMTPOSTGRES_SLAVE未与MGMTPOSTGRESS_MASTER形成集群时如何恢复。

先决条件

要求

Cisco 建议您了解以下主题：

- 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