[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 メーリングリストの案内