NetBackup™ for PostgreSQL 管理者ガイド
リストアのリカバリ
使用している PostgreSQL のバージョンに基づいてリカバリワークフローを選択します。PostgreSQL バージョン 12 以降を使用している場合は、直接セクション「PostgreSQL バージョン 12 以降のリカバリ 」に移動します。
正常なリストア後、リストアをリカバリするには、recovery.conf.sample
ファイルを PostgreSQL データディレクトリにコピーします。recovery.conf.sample
は、PostgreSQL のインストールパスにあります。リカバリファイルのコピー後、.sample
拡張子は削除します。
パラメータを設定して PostgreSQL サービスを再起動すると、サーバーはリカバリモードになり、アーカイブ済みの WAL ファイルを読み取ります。リカバリが終了したら、サーバーを再起動してリカバリ処理を続行できます。
正常に完了した後、サーバーは、再びリカバリモードにならないようにするため、recovery.conf
ファイルの名前を recovery.done
に変更します。
Linux オペレーティングシステムでは、正常なリストアの後、所有者とグループのデフォルト値が postgres
になります。所有者を PostgreSQL 所有者に変更し、環境に基づいて設定を変更する必要があります。
recovery.conf
ファイルには、アーカイブリカバリを有効にしたり、レプリケーションスタンバイとして動作するために設定する必要があるパラメータが含まれています。実行する必要のある後続のリカバリに対しては、パラメータを再度設定する必要があります。
表: recovery.conf ファイルのパラメータ に、アーカイブリカバリを有効にするために設定する必要があるパラメータを示します。
表: recovery.conf
ファイルのパラメータ
パラメータ | 説明 |
---|---|
restore_command | このパラメータは、アーカイブストレージからログファイルをコピーするために実行されるシェルコマンドを指定します。このパラメータはアーカイブストレージには必須ですが、レプリケーションのストリーミングでは省略可能です。コマンド文字列には、対象のログファイル名で置き換えられる %f、およびログファイルのコピー先の絶対パスで置き換えられる %p が含まれる場合があります。 |
recovery_target | このパラメータは、特定の時点でロールフォワードを停止します。デフォルトでは、リカバリは WAL ログの最後までロールフォワードします。 |
リストアをリカバリするには
- PostgreSQL サービスを停止します。
- リストアするデータを PostgreSQL データディレクトリにコピーします。
- (Linux) 所有者を PostgreSQL ユーザーに変更します。
recovery.conf
ファイルを PostgreSQL データディレクトリにコピーし、.sample
拡張子を削除します。- (Linux) 所有者を PostgreSQL ユーザーに変更し、環境に基づいて設定を変更します。
recovery.conf
ファイルを次の設定になるように編集します。(Windows) restore_command パラメータを cp "<PostgreSQL-data-directory>\\pgarchive\\%f" "%p" として指定します。
(Linux) restore_command を cp <PostgreSQL-data-directory>/pgarchive/%f %p として指定します。
pause_recovery_target パラメータを削除します。
- PostgreSQL サービスを起動します。
- 正常なリカバリが終了したら、
pgarchive
ディレクトリとrecovery.done
ファイルを削除します。
PostgreSQL バージョン 12 以降を使用している場合は、次の手順を実行します。
リストアをリカバリするには
- PostgreSQL サービスを停止します。
- リストアするデータを PostgreSQL データディレクトリにコピーします。
- (Linux) 所有者を PostgreSQL ユーザーに変更します。
- (Windows) restore_command パラメータを cp "<PostgreSQL-data-directory>\\pgarchive\\%f" "%p" として指定します。
- (Linux) restore_command を cp <PostgreSQL-data-directory>/pgarchive/%f %p として指定します。
- PostgreSQL データディレクトリに
recovery.signal
という名前の空のファイルを作成します。例: # touch /<target_restored_directory>/recovery.signal - (Linux) recovery.signal ファイルの所有者を PostgreSQL ユーザーに変更します。例: chown postgres:postgres /<PostgreSQL-data-directory>/recovery.signal
- PostgreSQL サービスを起動します。