内容

概要

前提条件

要件

使用するコンポーネント

背景説明

問題

エラーログ

解決方法

概要

このドキュメントでは、MGMTPOSTGRES_SLAVEがMGMTPOSTGRESS_MASTERでクラスタを形成しない場合のMGMTPOSTGRES_SLAVEの回復方法について説明します。

前提条件

要件

次の項目に関する知識があることが推奨されます。

- Linux インターフェイス

- 仮想マシン環境

- postgresql

- Pacemaker/Corosync Configuration System(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がクラスタを形成するために、MGMTPOSTGRES_SLAVEデータベースの回復に進みます。

ステップ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