Les valeurs par défaut sont, selon documentation pour min_wal_size
et max_wal_size
paramètres :
Pour max_wal_size
: The default is 1 GB
Pour min_wal_size
: The default is 80 MB
Ensuite, je regarde ces paramètres dans ma configuration de base de données:
select name, setting, unit
from pg_settings
where name in ('min_wal_size', 'max_wal_size')
Donne le résultat:
name | setting | unit
----------------------------------
max_wal_size | 64 |
min_wal_size | 5 |
J'ai 2 questions:
1) Pourquoi ces valeurs ne correspondent-elles pas aux valeurs par défaut, qui sont affichées dans les documents? Je n'ai jamais changé de paramètres de configuration.
2) Pourquoi la colonne unit
est vide/NULL pour ces paramètres? Que signifie 64 et 5 valeurs dans ce cas? MB
? GB
? Ou quoi?
Pourquoi ce n'est pas comme par exemple work_mem
paramètre, quand tout est clair:
name | setting | unit
----------------------------------
work_mem | 4096 | kB
Ce sont des segments WAL de 16 Mo par défaut. Le manuel:
Le système divise physiquement cette séquence en fichiers de segments WAL, qui sont normalement de 16 Mo chacun (bien que la taille du segment puisse être modifiée lors de la construction de PostgreSQL)
Donc, ce sont juste des valeurs par défaut comme annoncé:
select name, setting, setting::int * 16 || 'MB' AS setting_in_mb
from pg_settings
where name in ('min_wal_size', 'max_wal_size');
unit
dans pg_settings
est présent lorsqu'il s'agit d'une unité de base réelle comme seconde ou [~ # ~] mb [~ # ~ ] . Dans ce cas, l '"unité" serait des "segments WAL", qui peuvent être configurés avant la compilation de Postgres. La colonne unit
est juste NULL pour ceux-ci.