デフォルト値は min_wal_size
およびmax_wal_size
パラメータ :
ために max_wal_size
:The default is 1 GB
ために min_wal_size
:The default is 80 MB
次に、データベース構成からこのパラメーターを調べます。
select name, setting, unit
from pg_settings
where name in ('min_wal_size', 'max_wal_size')
結果を与える:
name | setting | unit
----------------------------------
max_wal_size | 64 |
min_wal_size | 5 |
2つの質問があります。
1)これらの値が、ドキュメントに示されているデフォルト値と一致しないのはなぜですか?設定をまったく変更していません。
2)これらのパラメーターのunit
列が空/ NULLなのはなぜですか?この場合、64と5の値はどういう意味ですか? MB
? GB
?または何?
なぜこれは例えばwork_mem
パラメータ、すべてが明確な場合:
name | setting | unit
----------------------------------
work_mem | 4096 | kB
これらはデフォルトで16 MBのWALセグメントです。 マニュアル:
システムはこのシーケンスを物理的にWALセグメントファイルに分割します。WALセグメントファイルは通常、それぞれ16MBです(ただし、PostgreSQLの構築時にセグメントサイズを変更できます)。
したがって、これは宣伝されているデフォルト値にすぎません。
select name, setting, setting::int * 16 || 'MB' AS setting_in_mb
from pg_settings
where name in ('min_wal_size', 'max_wal_size');
unit
in pg_settings
は、secondまたは[〜#〜] mb [〜#〜のような実際の基本単位である場合に存在します。 ]。この場合、「ユニット」は「WALセグメント」となり、Postgresをコンパイルする前に構成できます。これらの場合、unit
列はNULLです。