{"Entry":{"collection":"guc","key":"autovacuum_multixact_freeze_max_age","name":"autovacuum_multixact_freeze_max_age","aliases":[],"metadata":{"baseline":false,"boot_human":"Not specified","boot_val":null,"category":"Vacuuming / Automatic Vacuuming","category_zh":"","changed_in":["18"],"changes":[{"documentation_changed":false,"fields":{},"from":"9.2","status":"added","to":"9.3"},{"documentation_changed":true,"fields":{},"from":"9.4","status":"changed","to":"9.5"},{"documentation_changed":true,"fields":{},"from":"9.5","status":"changed","to":"9.6"},{"documentation_changed":true,"fields":{},"from":"13","status":"changed","to":"14"},{"documentation_changed":true,"fields":{},"from":"16","status":"changed","to":"17"},{"documentation_changed":false,"fields":{"category":{"from":"Autovacuum","to":"Vacuuming / Automatic Vacuuming"}},"from":"17","status":"changed","to":"18"}],"content_hash":"a797b61e8ced91dbfcd2752bc284bc55be25f8edd2170335e1c62b73eb1fb4c1","context":"","default_changed_in":[],"default_history":[{"from":"9.3","to":"19","value":"400000000"}],"editorial":{"advice":{"olap":"Proactively VACUUM (FREEZE) newly loaded or static partitions in batch windows and reserve I/O time for full scans. Convert age budgets using peak transaction rate, not a wall-clock guess.","oltp":"Calibrate autovacuum_multixact_freeze_max_age against the oldest XID/MXID age in every database and measured vacuum completion rate. Remove long transactions, stale slots, and blocked workers; never raise ages merely to hide a backlog.","small":"Upstream defaults are usually safest. A small system still needs anti-wraparound maintenance; monitor every database, not only the application database."},"mechanism":["Multixact age at which to autovacuum a table to prevent multixact wraparound. The value is fixed when the server starts, so changing it requires a restart.","Reaching the max age forces an aggressive autovacuum even if ordinary autovacuum is disabled; a per-table override can only lower the global ceiling. Safety must be assessed across every database/table age together with long transactions and replication slots.","Monitor and change autovacuum_multixact_freeze_max_age together with autovacuum_freeze_max_age, vacuum_freeze_min_age, vacuum_freeze_table_age. Validate on the relevant server role and real workload, then use its postmaster context to choose session change, reload, or restart; a historical boot default is not the current effective value."],"pitfalls":["Ignoring MultiXact member storage pressure, which can force work earlier.","Assuming XID-age monitoring also covers MXID age.","Raising the ceiling while long-lived row locks keep generating old multixacts.","Changing the global value while a table storage parameter overrides it.","Treating reltuples and cumulative change statistics as exact real-time counts."],"references":[{"title":"PostgreSQL 19 Beta 4: autovacuum_multixact_freeze_max_age","url":"https://www.postgresql.org/docs/19/runtime-config-vacuum.html#GUC-AUTOVACUUM-MULTIXACT-FREEZE-MAX-AGE"},{"title":"PostgreSQL 19 release notes","url":"https://www.postgresql.org/docs/19/release-19.html"}],"related":["autovacuum_freeze_max_age","vacuum_freeze_min_age","vacuum_freeze_table_age","vacuum_failsafe_age","vacuum_multixact_freeze_min_age","vacuum_multixact_freeze_table_age"],"summary":"autovacuum_multixact_freeze_max_age — Multixact age at which to autovacuum a table to prevent multixact wraparound. Observed in PG9.3–19 Beta 4; its last measured boot default is 400000000 in PG19 Beta 4, with postmaster context. This is a beta-snapshot fact and can change before PostgreSQL 19 GA."},"enumvals":[],"first_version":"9.3","group":"Vacuuming","group_slug":"vacuum","imported_at":"2026-09-27T17:57:30.80659+08:00","intro_commit":{"authored_at":"2014-02-13T19:30:30-03:00","discussion":[],"hash":"fb47de2be6e44397ab40508729606697f52702ac","subject":"Separate multixact freezing parameters from xid's","url":"https://git.postgresql.org/gitweb/?p=postgresql.git;a=commit;h=fb47de2be6e44397ab40508729606697f52702ac"},"key":"autovacuum_multixact_freeze_max_age","last_version":"20","max_val":"","min_val":"","name":"autovacuum_multixact_freeze_max_age","position":24,"present_in":["9.3","9.4","9.5","9.6","10","11","12","13","14","15","16","17","18","19","20"],"short_desc":"Specifies the maximum age (in multixacts) that a table's pg_class.relminmxid field can attain before a VACUUM operation is forced to prevent multixact ID wraparound within the table.","short_desc_zh":"","source_rev":"english-manuals:699d5b7dc1eb4cedd6186dfc17fab6f09472b5c949ac7df4d46a35f90a3db4a0","unit":"","vartype":"integer"}},"Definition":{"Collection":"guc","Key":"autovacuum_multixact_freeze_max_age","SourceDatabase":"center","Version":"18","SourceTable":"guc","SourceKey":"autovacuum_multixact_freeze_max_age","SourceRevision":"english-manuals:699d5b7dc1eb4cedd6186dfc17fab6f09472b5c949ac7df4d46a35f90a3db4a0","Facts":{"boot_val":"400000000","category":"Vacuuming / Automatic Vacuuming","context":"postmaster","description":"Specifies the maximum age (in multixacts) that a table's pg_class.relminmxid field can attain before a VACUUM operation is forced to prevent multixact ID wraparound within the table. Note that the system will launch autovacuum processes to prevent wraparound even when autovacuum is otherwise disabled. Vacuuming multixacts also allows removal of old files from the pg_multixact/members and pg_multixact/offsets subdirectories, which is why the default is a relatively low 400 million multixacts. This parameter can only be set at server start, but the setting can be reduced for individual tables by changing table storage parameters. For more information see Section 24.1.5.1.","doc":{"anchor":"GUC-AUTOVACUUM-MULTIXACT-FREEZE-MAX-AGE","file":"runtime-config-vacuum.html","lang":"en","sha256":"7047f1fa9138b97f1812532f8a905fa7479451dfd64655e029a7d387b20b22e4","slug":"18"},"documented":true,"enumvals":null,"extra_desc":null,"lang":"en","max_val":"2000000000","metadata_version":"18","min_val":"10000","name":"autovacuum_multixact_freeze_max_age","short_desc":"Multixact age at which to autovacuum a table to prevent multixact wraparound.","source":"pg-settings-source-snapshot","unit":null,"vartype":"integer"},"ManualEvidence":{"doc":{"anchor":"GUC-AUTOVACUUM-MULTIXACT-FREEZE-MAX-AGE","file":"runtime-config-vacuum.html","lang":"en","sha256":"7047f1fa9138b97f1812532f8a905fa7479451dfd64655e029a7d387b20b22e4","slug":"18"}},"MeasuredEvidence":{"metadata_version":"18"}},"Text":{"Collection":"guc","Key":"autovacuum_multixact_freeze_max_age","SourceDatabase":"pgweb","Version":"18","Locale":"zh-Hans","Title":"autovacuum_multixact_freeze_max_age","Summary":"","BodyHTML":"\u003cp\u003e指定在必须强制执行 \u003ccode\u003eVACUUM\u003c/code\u003e 以防止表内多事务 ID 回卷之前，一个表的 \u003ccode\u003epg_class\u003c/code\u003e.\u003ccode\u003erelminmxid\u003c/code\u003e 字段可以达到的最大年龄（以多事务计）。注意即使自动清理被禁用，系统也会启动自动清理进程来防止回卷。\u003c/p\u003e\u003cp\u003e清理多事务也允许从\u003ccode\u003epg_multixact/members\u003c/code\u003e和\u003ccode\u003epg_multixact/offsets\u003c/code\u003e子目录中移除旧文件，这也是为什么默认值被设置为较低的4亿个多事务。该参数只能在服务器启动时设置，但是对于个别表可以通过修改表存储参数来降低该设置。详见\u003ca href=\"/docs/18/routine-vacuuming.html#VACUUM-FOR-MULTIXACT-WRAPAROUND\" rel=\"nofollow\"\u003e第 24.1.5.1 节\u003c/a\u003e。\u003c/p\u003e","SourceRevision":"2026-09-11@29c86d9","ContentHash":"56a503116e89291f5b89a083929b3d77557f6ac701e55d7d5d4056fac11c132d","Payload":{"carried_from":"","carry_reason":"","doc_html":"\u003cp\u003e指定在必须强制执行 \u003ccode class=\"command\"\u003eVACUUM\u003c/code\u003e 以防止表内多事务 ID 回卷之前，一个表的 \u003ccode class=\"structname\"\u003epg_class\u003c/code\u003e.\u003ccode class=\"structfield\"\u003erelminmxid\u003c/code\u003e 字段可以达到的最大年龄（以多事务计）。注意即使自动清理被禁用，系统也会启动自动清理进程来防止回卷。\u003c/p\u003e\u003cp\u003e清理多事务也允许从\u003ccode class=\"filename\"\u003epg_multixact/members\u003c/code\u003e和\u003ccode class=\"filename\"\u003epg_multixact/offsets\u003c/code\u003e子目录中移除旧文件，这也是为什么默认值被设置为较低的4亿个多事务。该参数只能在服务器启动时设置，但是对于个别表可以通过修改表存储参数来降低该设置。详见\u003ca href=\"/docs/18/routine-vacuuming.html#VACUUM-FOR-MULTIXACT-WRAPAROUND\" title=\"24.1.5.1. 多事务与回卷\"\u003e第 24.1.5.1 节\u003c/a\u003e。\u003c/p\u003e","doc_same_as":""}},"RequestedLocale":"zh-Hans","Fallback":false,"Versions":["10","11","12","13","14","15","16","17","18","19","20","9.3","9.4","9.5","9.6"],"Locales":["en","zh-Hans"],"Signatures":null,"Spellings":null,"SQLState":null,"Evidence":null}
