Memahami parameter "max_wal_size" dan "min_wal_size" nilai default dari file postgresql.conf


16

Nilai standarnya adalah, menurut dokumentasi untuk min_wal_sizedan max_wal_sizeparameter :

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

Lalu saya melihat parameter ini dari konfigurasi basis data saya:

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

Memberikan hasil:

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

Saya punya 2 pertanyaan:

1) Mengapa nilai-nilai ini tidak cocok dengan nilai default, yang ditampilkan dalam dokumen? Saya tidak pernah mengubah pengaturan konfigurasi sama sekali.

2) Mengapa unitkolom kosong / NULL untuk parameter ini? Apa artinya nilai 64 dan 5 dalam kasus ini? MB? GB? Atau apa?

Mengapa ini tidak seperti misalnya work_memparameter, ketika semuanya jelas:

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

Jawaban:


11

Ini adalah 16 MB segmen WAL secara default. Manual:

Sistem secara fisik membagi urutan ini menjadi file segmen WAL, yang normalnya masing-masing 16MB (walaupun ukuran segmen dapat diubah ketika membangun PostgreSQL)

Jadi, itu hanya nilai default seperti yang diiklankan:

select name, setting, setting::int * 16 || 'MB' AS setting_in_mb
from pg_settings 
where name in ('min_wal_size', 'max_wal_size');

unitdi pg_settingshadir ketika itu merupakan unit dasar aktual seperti kedua atau MB . Dalam hal ini "unit" akan menjadi "segmen WAL", yang dapat dikonfigurasi sebelum mengkompilasi Postgres. The unitkolom hanya NULL bagi mereka.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.