[pgsql-jp: 42078] リカバリモードでの起動に1分以上かかる原因についてご教授ください
bobytyt
bobytyt @ yahoo.co.jp
2021年 7月 6日 (火) 10:01:26 UTC
はじめまして
谷口と申します。
よろしくお願いいたします。
現在、PostgreSQL 12を使って
ストリーミングレプリケーションを構成しており、
スタンバイの昇格後に、
降格したプライマリをリカバリモードで起動したときに
起動に1分以上かかる現象が発生しております。
これについて考えられる原因をご教授いただけないでしょうか。
【環境】
ー 2サーバ(プライマリ - スタンバイ)の
ストリーミングレプリケーション構成
非同期=synchronous_standby_namesなし
ー いずれのサーバも以下のスペック
CPU :4
メモリ :64GB
【手順】
1.プライマリで下記設定のもとDB更新を行う
max_wal_size = 1GB (デフォルト)
DB更新が高頻度であったため、チェックポイントが多発し、
max_wal_sizeを大きくする旨の警告が表示されました
2.プライマリでpg_ctl stop -m immediate
3.スタンバイでpg_ctl promote → 新プライマリに昇格
4.旧プライマリで pg_basebackup を実行し
新プライマリからバースバックアップを取得
5.リカバリモードでpg_ctl start
→ 1分以上後にタイムアウトが発生しました(pg_ctlの仕様)
起動はバックグラウンドで徐々に進行し、最終的には起動が完了
しました。
このとき、walは20ファイル程度であったことを確認
【推測】
リカバリモードでのwalからのトランザクションの組み立てに時間を要して
いるのかもしれません。
しかし、walのファイル数はそれほど大量ではなく
タイムアウトが発生した原因であると断定できません。
以上です。
なにかご存でしたら、ご教授いただけますと助かります。
--
このEメールはアバスト アンチウイルスによりウイルススキャンされています。
https://www.avast.com/antivirus
pgsql-jp メーリングリストの案内