既存のPostgreSQL 11データベースでWALセグメントサイズを増やすことは可能ですか? WALセグメントサイズを大きくすることの欠点は何ですか?
16 MBから増やしたい理由は、WAL-Eを使用するときにWALバックアップの転送速度を上げるためです。 16 MBのWALファイルは、約20 MB /秒の速度で転送されていました(ストライプミラーペアでSSDを使用)。これは、1 TBを超えるデータベースサイズの場合は非常に低速です。
WALセグメントサイズを増やした後、通常、min_wal_size
とmax_wal_size
の値を変更しますか?
新しいクラスターを作成するときに、initdb
でWALセグメントサイズを選択できます。したがって、データをダンプして復元する必要があります。つまり、ダウンタイムになります。 Jeff Janesの回答は、これはpg_resetwal
。
私が考えることができるより大きなWALセグメントサイズの唯一の欠点は、pg_wal
それが失われると増加します。しかし、それは小さな問題であり、 回避できます with pg_receivewal
。
変更する理由が思いつかないmax_wal_size
またはmin_wal_size
WALセグメントサイズが異なるためですが、値はwal_buffers
セグメントサイズと一致することは有益です。
サーバーを正常にシャットダウンした後、pg_resetwalを使用してwalセグメントサイズを変更できます。ただし、これを行うと、設定したストリーミングレプリカが無効になるだけでなく、walアーカイブに不連続性が生じ、新しいベースバックアップが強制されると思います。
私はこれを自分でやるとは思いません。私はv12にアップグレードし、希望のサイズで新しいサーバーを作成します。 1つしか持てないのになぜ2つの不連続を作成するのですか?
WALセグメントサイズを増やした後、通常、min_wal_sizeおよびmax_wal_sizeの値を変更しますか?
min_wal_sizeは、新しいセグメントサイズの少なくとも2倍である必要があるため、まだそれほど高くない場合は、変更する必要があります。それ以外は、それらが最初から最適ではない場合を除いて、それらを変更する理由はわかりません。