タイプ: | enum |
デフォルト: | replica |
コンテキスト: | postmaster |
再起動: | true |
値: | [minimal, replica, logical] |
wal_level
はどれだけの情報がWALに書かれるかを決定します。デフォルト値はreplica
で、WALアーカイビングおよびレプリケーションをサポートするために十分なデータを書き出し、これにはスタンバイサーバで読み取り専用の問い合わせを実行することも含みます。minimal
はクラッシュまたは即時停止から回復するのに必要な情報を除き、すべてのログを削除します。最後に、logical
は、更にロジカルデコーディングをサポートするのに必要な情報を追加します。それぞれのレベルは、下位のレベルのログ出力を含んでいます。このパラメータはサーバ起動時のみ設定可能です。
minimal
レベルでは、一部の巨大な操作でのWAL出力は安全に省略でき、そうすることで、それらの操作が大幅に高速になります(populate-pitrを参照してください)。この最適化が適用される操作には以下のものがあげられます。
- CREATE TABLE AS
- CREATE INDEX
- CLUSTER
- 同一トランザクション内で作成されたか、もしくは切り詰められたテーブルに対するCOPY
replica
以上を使用しなければなりません。
logical
レベルでは、replica
と同じ情報がログされるのに加え、ロジカルチェンジセットをWALから取り出すのに必要な情報が追加されます。logical
を使うとWALの量が増えます。とりわけ、多数のテーブルがREPLICA IDENTITY FULL
と設定されていて(訳注: ALTER TABLE参照)、多くのUPDATEとDELETE文が実行される場合はこのことが言えます。
9.6よりも前のリリースでは、このパラメータはarchive
とhot_standby
という設定値も可能でした。引き続きこれらも受け付けられますが、replica
へとマップされます。
推奨事項 [EN]
Level replica is required for binary replication, and level logical is required for logical replication. This is a setting because raising the level adds more writes to the WAL, so if you’re not doing replication or archiving at all, set it to minimal.