postgresql.conf 파일의“max_wal_size”및“min_wal_size”매개 변수 기본값 이해


16

대한 min_wal_sizemax_wal_size매개 변수에 대한 기본값은 다음 같습니다.

For max_wal_size: The default is 1 GB
For 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        |

두 가지 질문이 있습니다.

1) 왜 이러한 값이 문서에 표시된 기본값과 일치하지 않습니까? 구성 설정을 전혀 변경하지 않았습니다.

2) 왜 unit이러한 매개 변수에 대해 열이 비어 있거나 NULL입니까? 이 경우 64와 5의 값은 무엇입니까? MB? GB? 또는 무엇을?

work_mem모든 것이 명확 할 때 이것이 매개 변수 와 같은 이유는 무엇입니까?

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

답변:


11

이들은 기본적으로 16MB WAL 세그먼트입니다. 매뉴얼 :

시스템은이 시퀀스를 물리적으로 16MB 크기의 WAL 세그먼트 파일로 물리적으로 나눕니다 (PostgreSQL을 빌드 할 때 세그먼트 크기를 변경할 수는 있지만)

따라서 광고 된 기본값입니다.

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_settingssecond 또는 MB 와 같은 실제 기본 단위 일 때 존재합니다 . 이 경우 "단위"는 "WAL 세그먼트"이며 Postgres를 컴파일하기 전에 구성 할 수 있습니다. 그 unit열은 NULL입니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.