pgx_rcvallコマンドでバックアップ取得日時を指定してデータベースクラスタをリカバリします。そのあと、必要に応じてトランザクションを再実行し、データを復旧します。
以下の手順でデータ格納ディスクをリカバリしてください。
アプリケーションの停止
データベースを利用しているアプリケーションを停止してください。
インスタンスの停止
インスタンスを停止します。停止方法については、“2.1.2 サーバコマンドを使用する場合”を参照してください。
インスタンスの停止に失敗した場合は、“10.11 インスタンス停止失敗時の対処”を参照してください。
バックアップ取得日時の確認
バックアップデータ格納先に取得されているバックアップデータをpgx_rcvallコマンドで確認し、データが破壊される前の日時を特定します。
pgx_rcvallコマンドには、以下を指定します。
-Dオプションは、データ格納先のディレクトリを指定します。-Dオプションを省略した場合、PGDATA環境変数の値が使用されます。
-Bオプションは、バックアップデータ格納先のディレクトリを指定します。
-lオプションは、バックアップデータの情報を表示します。
> pgx_rcvall -D /database/inst1 -B /backup/inst1 -l Date Status Dir 2015-05-20 10:00:00 COMPLETE /backup/inst1/2015-05-20_10-00-00
キーストアのリカバリとキーストアの自動オープンの有効化
データベースに格納するデータを暗号化している場合は、データベースのバックアップを取得した時点のキーストアをリストアしてください。キーストアの自動オープンは、必要に応じて設定してください。
データベースクラスタのリカバリ
pgx_rcvallコマンドを使用して、データベースクラスタを復旧します。
pgx_rcvallコマンドには、以下を指定します。
-Dオプションは、データ格納先のディレクトリを指定します。-Dオプションを省略した場合、PGDATA環境変数の値が使用されます。
-Bオプションは、バックアップデータ格納先のディレクトリを指定します。
-eオプションは、復旧する日時を指定します。時間は秒単位で指定します。
復旧時点に‘2015年5月20日 10時00分00秒’を指定した場合の実行例を示します。
> pgx_rcvall -D /database/inst1 -B /backup/inst1 -e "2015-05-20 10:00:00"
注意
リカバリに失敗した場合は、表示されるエラーメッセージに従ってエラーの原因を取り除き、pgx_rcvallコマンドを再実行してください。
「pgx_rcvall:リカバリ中にエラーが発生しました」のメッセージがある場合は、その後にリカバリ実行時のログが出力されます。ログの最後の十数行以内にエラーの原因が出力されますので、そのメッセージに従ってエラーの原因を取り除き、pgx_rcvallコマンドを再実行してください。
また、リカバリ中に表示される以下のメッセージは、pgx_rcvallコマンドの正常な動作によって出力されるメッセージのため、ユーザーが意識する必要はありません。
FATAL: データベースシステムは起動しています
インスタンスの起動
インスタンスを起動します。インスタンスの起動方法については、“2.1.2 サーバコマンドを使用する場合”を参照してください。
必要に応じて、指定した復旧時点からトランザクション処理を再度実行した上で、データベースの運用を再開します。
注意
pgx_rcvallコマンドは、ハッシュインデックスを正しく復旧できません。ハッシュインデックスを使用している場合、インスタンス起動後、該当するインデックスに対して、REINDEXコマンドを実行してください。
アプリケーションの再開
データベースを利用しているアプリケーションを再開してください。
参照
pgx_rcvallコマンドの詳細は、“リファレンス”の“pgx_rcvall”を参照してください。