了解postgresql.conf文件中的“ max_wal_size”和“ min_wal_size”参数默认值


16

根据文档min_wal_sizemax_wal_size参数,默认值为:

对于max_wal_sizeThe default is 1 GB
对于min_wal_sizeThe 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        |

我有两个问题:

1)为什么这些值与docs中显示的默认值不匹配?我根本没有更改配置设置。

2)为什么unit这些参数的列为空/ NULL?在这种情况下,什么是64和5值?MBGB?还是什么?

work_mem当一切都清楚后,为什么这不像示例 参数:

name         | setting  | unit
----------------------------------
work_mem     | 4096     | kB

Answers:


11

默认情况下,这些是16 MB 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');

unitin pg_settings是实际的基本单位(例如secondMB)时存在的。在这种情况下,“单位”将是“ WAL段”,可以在编译Postgres之前对其进行配置。这些unit列只是NULL。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.