データベース多重化運用を行うということは、ディスク故障に備えてスタンバイサーバにバックアップデータを取得していることと同じです。しかし、何らかの原因ですべてのサーバのディスクが破壊される可能性もあります。
このような場合に備えて、プライマリサーバ上でpgx_dmpallコマンドを実行してバックアップデータを取得してください。しかし、どのサーバがプライマリサーバとして動作するかは不定であるため、すべてのサーバでpgx_dmpallコマンドを定期的に実行するようにしてください。例えば、バックアップデータを取得するためのスクリプトを作成して運用管理ソフトウェアに設定します。
ポイント
スタンバイサーバでpgx_dmpallコマンドを実行すると、状況に一致していませんが、以下のエラーメッセージが出力されてコマンドは復帰値1を返却します。
すべてのサーバでこのようなエラーのみを無視するようなスクリプトを実行すれば、プライマリサーバのバックアップデータを取得することができます。
エラーメッセージ
ERROR: リカバリーはすでに実行中です (10095)
注意
プライマリサーバとして稼動していたサーバがそのバックアップデータとともに損壊する場合を考慮して、もう一方のサーバがプライマリサーバへと昇格したあとに、次のバックアップ予定を待たずに新プライマリサーバでバックアップすることを推奨します。
プライマリサーバとスタンバイサーバで同じバックアップディレクトリ名を指定してください。異なるバックアップディレクトリ名を指定すると、他方のサーバのバックアップデータを使ってリカバリを行った場合に、正しく行えません。
参照
バックアップは定期的に行う方が、リカバリ時間の短縮やディスク使用率の削減の効果があります。バックアップの詳細は、“運用ガイド”の“データベースのバックアップ”を参照してください。
pgx_dmpallコマンドで採取したバックアップデータをもとにした復旧する方法は、“第5章 データベース多重化運用の異常時の対処”を参照してください。