web-dev-qa-db-ja.com

WALセグメントのサイズを増やしますか?

既存のPostgreSQL 11データベースでWALセグメントサイズを増やすことは可能ですか? WALセグメントサイズを大きくすることの欠点は何ですか?

16 MBから増やしたい理由は、WAL-Eを使用するときにWALバックアップの転送速度を上げるためです。 16 MBのWALファイルは、約20 MB /秒の速度で転送されていました(ストライプミラーペアでSSDを使用)。これは、1 TBを超えるデータベースサイズの場合は非常に低速です。

WALセグメントサイズを増やした後、通常、min_wal_sizemax_wal_sizeの値を変更しますか?

2
Nyxynyx

新しいクラスターを作成するときに、initdbでWALセグメントサイズを選択できます。したがって、データをダンプして復元する必要があります。つまり、ダウンタイムになります。 Jeff Janesの回答は、これはpg_resetwal

私が考えることができるより大きなWALセグメントサイズの唯一の欠点は、pg_walそれが失われると増加します。しかし、それは小さな問題であり、 回避できます with pg_receivewal

変更する理由が思いつかないmax_wal_sizeまたはmin_wal_size WALセグメントサイズが異なるためですが、値はwal_buffersセグメントサイズと一致することは有益です。

1
Laurenz Albe

サーバーを正常にシャットダウンした後、pg_resetwalを使用してwalセグメントサイズを変更できます。ただし、これを行うと、設定したストリーミングレプリカが無効になるだけでなく、walアーカイブに不連続性が生じ、新しいベースバックアップが強制されると思います。

私はこれを自分でやるとは思いません。私はv12にアップグレードし、希望のサイズで新しいサーバーを作成します。 1つしか持てないのになぜ2つの不連続を作成するのですか?

WALセグメントサイズを増やした後、通常、min_wal_sizeおよびmax_wal_sizeの値を変更しますか?

min_wal_sizeは、新しいセグメントサイズの少なくとも2倍である必要があるため、まだそれほど高くない場合は、変更する必要があります。それ以外は、それらが最初から最適ではない場合を除いて、それらを変更する理由はわかりません。

1
jjanes