Розуміння параметрів "max_wal_size" та "min_wal_size" за замовчуванням у файлі postgresql.conf


16

Значення за замовчуванням відповідно до документації min_wal_sizeта max_wal_sizeпараметрами :

Для max_wal_size: The default is 1 GB
Для min_wal_size:The 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        |

У мене є 2 питання:

1) Чому ці значення не відповідають типовим значенням, які відображаються в документах? Я взагалі ніколи не змінював налаштування конфігурації.

2) Чому unitстовпець порожній / NULL для цих параметрів? Що означає в цьому випадку 64 та 5 значень? MB? GB? Або те, що?

Чому це не так, наприклад, як work_memпараметр, коли все зрозуміло:

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

Відповіді:


11

Це за замовчуванням 16 Мб сегментів WAL. Посібник:

Система фізично розділяє цю послідовність на файли сегментів WAL, які, як правило, 16 Мб за штуку (хоча розмір сегмента можна змінити при складанні PostgreSQL)

Отже, це просто значення за замовчуванням, як рекламується:

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

unitв pg_settingsприсутній, коли це фактичний базовий блок, наприклад, другий або МБ . У цьому випадку "одиницею" будуть "сегменти WAL", які можна налаштувати перед компіляцією Postgres. unitСтовпець просто NULL для тих.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.