Technologies/PostgreSQL/backend_xid
PostgreSQLPostgreSQLMetric

backend_xid

Backend transaction ID
Dimensions:None
Available on:Native (1)DatadogDatadog (1)
Interface Metrics (2)
Native
backend_xid statistic from pg_stat_activity
Dimensions:None
DatadogDatadog
The age of the oldest backend's xid relative to latest stable xid. This metric (by default) is tagged with db, app, user.
Dimensions:None

Technical Annotations (8)

Configuration Parameters (2)
autovacuum_vacuum_scale_factorrecommended: 0.02
prevents XID wraparound by triggering vacuum more frequently
autovacuum_max_workersrecommended: 5-8
more workers reduce risk of tables falling behind on vacuum
CLI Commands (3)
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;diagnostic
SELECT 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;monitoring
VACUUM (FREEZE, VERBOSE) events;remediation
Technical References (3)
transaction ID wraparoundconceptage(relfrozenxid)conceptpg_classcomponent
Related Insights (1)
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.