본문으로 건너뛰기

vacuum_freeze_table_age

버전기본값context타입
14150 million transactionsuserinteger
15150 million transactionsuserinteger
16150 million transactionsuserinteger
17150 million transactionsuserinteger
18150 million transactionsuserinteger
19150 million transactionsuserinteger

테이블의 pg_class.relfrozenxid age가 이 값에 도달하면 VACUUM이 aggressive scan을 수행한다.

aggressive scan은 일반 VACUUM과 달리 dead tuple이 있을 법한 page만이 아니라 freeze되지 않은 XID나 MXID가 있을 수 있는 모든 page를 방문한다. 테이블 전체의 relfrozenxid를 실제로 전진시킬 수 있는 것이 이 aggressive scan이다. vacuum_freeze_min_age가 개별 XID를 언제 freeze할지 정한다면, 이 파라미터는 테이블 단위로 언제 전면적인 freeze 작업에 들어갈지를 정한다.

기본값은 1억 5,000만 transaction이다. 0부터 20억까지 설정할 수 있지만 VACUUM이 유효값을 autovacuum_freeze_max_age의 95%로 조용히 제한한다. 주기적인 수동 VACUUM이 anti-wraparound autovacuum이 강제 기동되기 전에 먼저 돌 기회를 주기 위해서다. age가 그마저 넘기면 autovacuum_freeze_max_age에서 autovacuum이 강제되고, 최후에는 vacuum_failsafe_age의 failsafe가 발동한다.

출처: PostgreSQL 18 문서