before_xid_wraparound
Txns before wraparoundDimensions:None
Available on:
Datadog (1)
Interface Metrics (1)
Dimensions:None
Technical Annotations (30)
Configuration Parameters (4)
autovacuum_vacuum_scale_factorrecommended: 0.02autovacuum_max_workersrecommended: 5-8autovacuum_freeze_max_agerecommended: 200000000vacuum_freeze_min_agerecommended: 50000000 (default)Error Signatures (4)
WARNING: oldest xmin is far in the pastlog patternWARNING: database "mydb" must be vacuumed within 10000000 transactionslog patternWARNING: database "mydb" must be vacuumed within 39985967 transactionslog patternERROR: database is not accepting commands to avoid wraparound data loss in database "mydb"log patternCLI Commands (10)
SELECT c.oid::regclass AS table_name, age(c.relfrozenxid) AS xid_age, pg_size_pretty(pg_total_relation_size(c.oid)) AS total_size, ROUND(age(c.relfrozenxid)::numeric / 2000000000 * 100, 2) AS pct_to_wraparound FROM pg_class c JOIN pg_namespace n ON c.relnamespace = n.oid WHERE c.relkind = 'r' AND n.nspname NOT IN ('pg_catalog', 'information_schema') ORDER BY age(c.relfrozenxid) DESC LIMIT 20;diagnosticSELECT c.oid::regclass AS table_name, age(c.relfrozenxid) AS xid_age, 200000000 - age(c.relfrozenxid) AS headroom FROM pg_class c WHERE c.relkind = 'r' AND age(c.relfrozenxid) > 150000000 ORDER BY age(c.relfrozenxid) DESC;monitoringVACUUM (FREEZE, VERBOSE) events;remediationSELECT relname, age(relfrozenxid) FROM pg_class WHERE relkind = 'r' ORDER BY age(relfrozenxid) DESC;diagnosticVACUUM FREEZEremediationSHOW autovacuum_freeze_max_age;diagnosticvacuumdb --analyze --verbose --jobs=4 mydbremediationSELECT c.oid::regclass as table_name, greatest(age(c.relfrozenxid),age(t.relfrozenxid)) as age FROM pg_class c LEFT JOIN pg_class t ON c.reltoastrelid = t.oid WHERE c.relkind IN ('r', 'm');diagnosticSELECT datname, age(datfrozenxid) FROM pg_database;diagnosticVACUUMremediationTechnical References (12)
transaction ID wraparoundconceptage(relfrozenxid)conceptpg_classcomponentVACUUMcomponentcheck_postgrescomponentrelfrozenxidcomponentautovacuum_freeze_max_agecomponenttransaction ID (XID)conceptpg_prepared_xactscomponentpg_stat_activitycomponentpg_stat_replicationcomponentdatfrozenxidcomponentRelated Insights (5)
Transaction ID wraparound risk causes database shutdowncritical
PostgreSQL's 32-bit transaction ID counter approaches exhaustion (2 billion limit), risking forced database shutdown. Tables with age(relfrozenxid) approaching autovacuum_freeze_max_age require aggressive freezing VACUUMs to prevent wraparound.
▸
Transaction ID wraparound prevents new transactions and causes database shutdowncritical
▸
Transaction ID wraparound causes complete write outagecritical
▸
Transaction ID wraparound shutdown riskcritical
▸
Transaction ID wraparound prevents new transactionscritical
▸