vacuum freeze无法回收事务号问题分析

  1. 云栖社区>
  2. PostgreSQL技术进阶>
  3. 博客>
  4. 正文

vacuum freeze无法回收事务号问题分析

绛云 2019-05-07 16:34:25 浏览1931
展开阅读全文

在template1数据库中进行vacuum freeze出现如下报错:

template1=> vacuum freeze template1.pg_catalog.pg_authid;
ERROR:  found xmin 1988747257 from before relfrozenxid 2810153180

问题原因

出现这种报错一般第一反应都是因为长事务引起的事务号无法回收,通过查询pg_stat_activity没有发现有长事务,而且是单表无法进行回收。原因是pg会把一些关键的系统表的元数据信息存储在relcache中,rd_isnailed=true就是表明这个表的relcache的relcache是不会去进行更新的,关键的系统表一般也不会去进行表元数据的变更,所以系统表不去更新relcache也是正常的

type

网友评论

登录后评论
0/500
评论
绛云
+ 关注
所属云栖号: PostgreSQL技术进阶