Comprensione dei valori predefiniti dei parametri "max_wal_size" e "min_wal_size" dal file postgresql.conf


16

I valori predefiniti sono, secondo la documentazione min_wal_sizee i max_wal_sizeparametri :

Per max_wal_size: The default is 1 GB
Per min_wal_size:The default is 80 MB

Quindi guardo questi parametri dalla mia configurazione del database:

select name, setting, unit 
from pg_settings 
where name in ('min_wal_size', 'max_wal_size')

Dà risultato:

name         |  setting | unit
----------------------------------
max_wal_size | 64       | 
min_wal_size | 5        |

Ho 2 domande:

1) Perché questi valori non corrispondono ai valori predefiniti, che sono mostrati nei documenti? Non ho mai modificato le impostazioni di configurazione.

2) Perché la unitcolonna è vuota / NULL per questi parametri? Che cosa significa 64 e 5 valori in questo caso? MB? GB? O cosa?

Perché questo non è come ad esempio il work_memparametro, quando tutto è chiaro:

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

Risposte:


11

Questi sono 16 WAL segmenti per impostazione predefinita. Il manuale:

Il sistema divide fisicamente questa sequenza in file di segmenti WAL, che normalmente sono 16 MB ciascuno (anche se la dimensione del segmento può essere modificata durante la creazione di PostgreSQL)

Quindi, sono solo i valori predefiniti come pubblicizzato:

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è presente quando si tratta di un'unità base effettiva come seconda o MB . In questo caso l '"unità" sarebbe "segmenti WAL", che possono essere configurati prima di compilare Postgres. La unitcolonna è solo NULL per quelli.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.