我正在尝试了解wal文件的行为。数据库的wal相关设置如下:
"min_wal_size" "2GB"
"max_wal_size" "20GB"
"wal_segment_size" "16MB"
"wal_keep_segments" "0"
"checkpoint_completion_target" "0.8"
"checkpoint_timeout" "15min"
wal文件的数量始终为1281或更高:
SELECT COUNT(*) FROM pg_ls_dir('pg_xlog') WHERE pg_ls_dir ~ '^[0-9A-F]{24}';
-- count 1281
据我了解,这意味着wal文件目前永远不会低于max_wal_size(1281 * 16 MB = 20496 MB = max_wal_size)??
我希望在达到检查点并将数据同步到磁盘后,wal文件的数量会减少到最大数量以下。但这显然不是事实。我想念什么?