Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/postgresql/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么在postgresql中template0 DB的事务期限会增加_Postgresql_Postgresql 11_Postgresql 12_Enterprisedb - Fatal编程技术网

为什么在postgresql中template0 DB的事务期限会增加

为什么在postgresql中template0 DB的事务期限会增加,postgresql,postgresql-11,postgresql-12,enterprisedb,Postgresql,Postgresql 11,Postgresql 12,Enterprisedb,为什么template0 DB的事务期限会增加,而它从未被使用过 datname | age | ----------------------+-----------+ template0 | 192232070 每个数据库在其pg_数据库条目中都有一个datfrozenxid。这与数据库中所有表的pg_类项的最小relfrozenxid相同 每当VACUUM冻结表中的元组时,它都可以推进这些列 没有必要定期抽真空模板0。但是,即使

为什么template0 DB的事务期限会增加,而它从未被使用过

   datname        |    age    | 
 ----------------------+-----------+
  template0            | 192232070

每个数据库在其
pg_数据库
条目中都有一个
datfrozenxid
。这与数据库中所有表的
pg_类
项的最小
relfrozenxid
相同

每当
VACUUM
冻结表中的元组时,它都可以推进这些列

没有必要定期抽真空
模板0
。但是,即使在该数据库中,只要表的
relfrozenxid
autovacuum\u freeze\u max\u age
旧,表也会收到反环绕自动真空运行。这将很快完成:PostgreSQL将在可见性图中看到所有页面都“全部冻结”,并前进
relfrozenxid


这不是真正的问题,因此没有人认为有必要对其进行更改或优化。

谢谢。某种程度上解释了这一点,但当它用于template0时,它是非常具有欺骗性的。如果我在这里错了,请纠正我的错误,因此理想情况下,无论数据库
template0、template1、postgres
-默认数据库中发生的事务为零,这些数据库的此值都将根据用户数据库增加。当autovacuum启动时,template1和postgres DB可能/会将其刷新到一个较低的数字,但由于template0仅在
autovacuum\u freeze\u max\u age
值时自动抽真空,因此它将继续增长
datfrozenxid
也将对
template0
进行升级,但您是对的,它只会在反环绕真空期间被推进,这是autovacuum在
template0上工作的唯一时间(只能立即得出结论,没有什么可做的)。请注意,增长的不是
datfrozenxid
,而是当前事务ID。