postgresql高可用性の予備ライブラリ(三)
Streamsレプリケーションのアーカイブ関連設定ストリームレプリケーションは、マスターライブラリがアーカイブを開くかどうかについて必然的な関連はない. アーカイブを開くことは、基本的なバックアップとリカバリに必要である.
プライマリ・ライブラリがアーカイブを開始し、アーカイブ・ディレクトリ・スタンバイにアクセスできる場合、スタンバイ起動時の動作は次のとおりです.まずrestore_を使用commandはできるだけWALアーカイブを使用して復元する. 上のコマンドが失敗すると、xlogディレクトリの下で使用可能な を適用する.上記の手順が適用された後、ストリームレプリケーションがオンになっている場合は、プライマリ・ライブラリに接続し、ストリームレプリケーション方式で準リアルタイム同期を継続します... .ストリームレプリケーション接続が失敗するか、またはストリームレプリケーションがオンになっていない場合は、第1のステップに戻る.
マスターライブラリのアーカイブを閉じる
アーカイブは、災害復旧時にリカバリに使用することが重要です.ここでは、閉鎖を推奨するのではなく、具体的な災害対策に従って決定します.
プライマリ・ライブラリのアーカイブのクローズ
アーカイブがないため、バックアップは直接メインライブラリを介してxlogを取得する.これにより、スタンバイが一時停止する場合に問題が発生します.メインライブラリはアーカイブを閉じるため、xlogファイルは一部しか保持されません.バックアップ再起動時に必要なxlogが取得できない場合、バックアップは再初期化するしかない.では、どのようにして十分なxlogファイルを保持しますか.wal_keep_segmentsパラメータ制御保持xlog数
フローレプリケーションスロットの設定(Replication Slots)
アーカイブを閉じてパラメータwal_を使用keep_segmentsはxlogの数を制御して大体評価することしかできなくて、予備ライブラリが直ちにxlogを取得できない問題を解決する.制限が少なくなると、バックアップはxlogを取得できないリスクがあり、制限が多くなり、スペースを占有する.Replication Slotsメカニズムは、どのxlogがすでにライブラリに受け入れられているかを正確に制御することができ、どのxlogがリサイクルできるかを判断することができる.
マスターライブラリ上の構成
ストリームレプリケーションスロットを構成したらwal_keep_segmentsパラメータは役に立たないmaxを構成していませんreplication_slotsパラメータpostgres=#select pg_create_physical_replication_slot('slot_1'); ERROR: replication slots can only be used if max_replication_slots > 0
ライブラリ上の構成
recovery.confパラメータを増やして再起動
けんさ
メインライブラリ
アクティブ化された使用
未完待機・・・
//END
プライマリ・ライブラリがアーカイブを開始し、アーカイブ・ディレクトリ・スタンバイにアクセスできる場合、スタンバイ起動時の動作は次のとおりです.
マスターライブラリのアーカイブを閉じる
アーカイブは、災害復旧時にリカバリに使用することが重要です.ここでは、閉鎖を推奨するのではなく、具体的な災害対策に従って決定します.
プライマリ・ライブラリのアーカイブのクローズ
[postgres@fnddb data]$ vi postgresql.conf
archive_mode = off
wal_keep_segments = 200 -- .
max_replication_slots = 2 -- Replication Slots
[postgres@fnddb data]$ pg_ctl restart -m fast
アーカイブがないため、バックアップは直接メインライブラリを介してxlogを取得する.これにより、スタンバイが一時停止する場合に問題が発生します.メインライブラリはアーカイブを閉じるため、xlogファイルは一部しか保持されません.バックアップ再起動時に必要なxlogが取得できない場合、バックアップは再初期化するしかない.では、どのようにして十分なxlogファイルを保持しますか.wal_keep_segmentsパラメータ制御保持xlog数
フローレプリケーションスロットの設定(Replication Slots)
アーカイブを閉じてパラメータwal_を使用keep_segmentsはxlogの数を制御して大体評価することしかできなくて、予備ライブラリが直ちにxlogを取得できない問題を解決する.制限が少なくなると、バックアップはxlogを取得できないリスクがあり、制限が多くなり、スペースを占有する.Replication Slotsメカニズムは、どのxlogがすでにライブラリに受け入れられているかを正確に制御することができ、どのxlogがリサイクルできるかを判断することができる.
マスターライブラリ上の構成
postgres=# select pg_create_physical_replication_slot('slot_1');
pg_create_physical_replication_slot
-------------------------------------
(slot_1,)
(1 row)
postgres=# select * from pg_replication_slots;
slot_name | plugin | slot_type | datoid | database | active | xmin | catalog_xmin | restart_lsn
-----------+--------+-----------+--------+----------+--------+------+--------------+-------------
slot_1 | | physical | | | f | | |
(1 row)
ストリームレプリケーションスロットを構成したらwal_keep_segmentsパラメータは役に立たないmaxを構成していませんreplication_slotsパラメータpostgres=#select pg_create_physical_replication_slot('slot_1'); ERROR: replication slots can only be used if max_replication_slots > 0
ライブラリ上の構成
recovery.confパラメータを増やして再起動
[postgres@vm2 data]$ vi recovery.conf
primary_slot_name = 'slot_1'
[postgres@vm2 data]$ pg_ctl restart
けんさ
メインライブラリ
postgres=# select * from pg_replication_slots;
slot_name | plugin | slot_type | datoid | database | active | xmin | catalog_xmin | restart_lsn
-----------+--------+-----------+--------+----------+--------+------+--------------+-------------
slot_1 | | physical | | | t | | | 0/29000828
(1 row)
アクティブ化された使用
未完待機・・・
//END