広域回線切断中に、早急に待機センタへトランザクションログの転送を行いたい場合は、運用センタのアーカイブログファイルを待機センタに手動で転送することで災害対策運用を継続することができます。待機センタに転送されたアーカイブログは、転送後すぐに待機センタに反映されます。
注意
待機センタに必要なアーカイブログファイルが運用センタに存在しない場合には、手動転送を開始または継続することができなくなり、待機センタのプライマリ候補サーバとスタンバイサーバの再構築が必要となります。再構築の手順については“7.3 待機センタのセットアップ”を参照してください。
運用センタのトランザクションログを待機センタへ手動で転送する場合の操作手順について説明します。
広域回線切断の発生を確認
待機センタのプライマリ候補サーバに出力されるメッセージを確認し、運用センタと待機センタ間の広域回線に異常が発生したことを確認します。
以下の手順2から手順5は、ネットワークが復旧し、手順6でストリーミングレプリケーションの再開が確認できるまで、定期的に繰り返します。
最新のトランザクションログの位置を取得
待機センタのプライマリ候補サーバでリカバリ制御関数pg_last_wal_receive_lsnを実行し、待機センタのプライマリ候補サーバの最新のトランザクションログ位置を取得します。
例)
# select pg_last_wal_receive_lsn(); pg_last_wal_receive_lsn ------------------------- 0/80000D0
待機センタの最新のトランザクションログ位置をWALファイル名に変換
運用センタのプライマリサーバでバックアップ制御関数pg_walfile_nameを実行し、手順2で取得したトランザクションログ位置をWALのファイル名に変換します。
例)
# select pg_walfile_name('0/80000D0'); pg_walfile_name -------------------------- 000000010000000000000008
対象のアーカイブログファイルを待機センタに転送
運用センタのプライマリサーバにおいて、postgresql.confファイルのarchive_commandパラメータに指定したバックアップデータ格納先ディレクトリ配下に格納されているアーカイブログファイルを、待機センタのプライマリ候補サーバに転送します。転送するアーカイブログファイルとその転送先は、以下のとおりです。
転送するアーカイブログファイル
初回の手動転送の場合
アーカイブログファイル名の通番が、手順3で取得したWALファイル名の通番を含むそれ以降のアーカイブログファイル
2回目以降の手動転送の場合
アーカイブログファイル名の通番が、手順3で取得したWALファイル名の通番の次以降のアーカイブログフファイル
アーカイブログファイルの転送先
待機センタのプライマリ候補サーバのpostgresql.confファイルのrestore_commandパラメータに指定した手動転送用の一時ディレクトリ
アーカイブログのデータ反映
アーカイブログファイルのトランザクションログのデータは、転送後すぐに待機センタのプライマリ候補サーバに自動で反映されます。トランザクションログの反映時は、待機センタのプライマリ候補サーバでメッセージが出力されます。
例) ファイル名が“000000010000000000000008”から“00000001000000000000000B”のアーカイブログファイルを待機センタのプライマリ候補サーバに転送した場合のメッセージ出力例を以下に示します。
LOG: restored log file "000000010000000000000008" from archive LOG: restored log file "000000010000000000000009" from archive LOG: restored log file "00000001000000000000000A" from archive LOG: restored log file "00000001000000000000000B" from archive
ネットワークの復旧
回線復旧後、継続して災害対策運用の継続が可能です。回線復旧時は、待機センタのプライマリ候補サーバでメッセージが出力されます。
例)
LOG: started streaming WAL from primary at 0/C000000 on timeline 1