Postresql 数据库年龄
文章目录背景查看数据库年龄自动处理机制查看表的年龄清理方式背景由于PG的事务数量是有上限的,新老事务之间的年龄超过最大值之后必须要冻结,所以要及时监控,及时处理查看数据库年龄监控数据库年龄,及时清理select datname,age(datfrozenxid) from pg_database order by 2 desc;自动处理机制同一个数据库中,存在的最旧和最新两个事务之间的年龄最多是2
·
背景
由于PG的事务数量是有上限的,新老事务之间的年龄超过最大值之后必须要冻结,所以要及时监控,及时处理
查看数据库年龄
监控数据库年龄,及时清理
select datname,age(datfrozenxid) from pg_database order by 2 desc;

自动处理机制
同一个数据库中,存在的最旧和最新两个事务之间的年龄最多是2^31,即20亿,当表的年龄大于autovacuum_freeze_max_age时(默认是2亿),autovacuum进程会自动对表进行freeze。
查看表的年龄
select current_database(),rolname,nspname,relkind,relname,age(relfrozenxid),2^31-age(relfrozenxid) age_remain from pg_authid t1 join pg_class t2 on t1.oid=t2.relowner join pg_namespace t3 on t2.relnamespace=t3.oid where t2.relkind in ($$t$$,$$r$$) order by age(relfrozenxid) desc limit 5

手动清理方式
1、vacuum freeze table_name
2、pg_squeeze
更多推荐




所有评论(0)