首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >为什么RDS PostgreSQL‘`MaximumUsedTransactionIDs`’即使数据库看起来正确,‘’‘d仍不减少?

为什么RDS PostgreSQL‘`MaximumUsedTransactionIDs`’即使数据库看起来正确,‘’‘d仍不减少?
EN

Database Administration用户
提问于 2018-04-18 10:34:11
回答 1查看 5K关注 0票数 7

我的MaximumUsedTransactionIDs似乎在无限期地增长,但我有这些证据表明我不应该这样做:

代码语言:javascript
运行
复制
$ PGPASSWORD=$MY_USER_LAND_RDS_SUPER_USER_PASSWORD psql -h $MY_RDS_INSTANCE -d
my_main_data_base -U $MY_USER_LAND_RDS_SUPER_USER
psql (9.5.8, server 9.5.10)
SSL connection (protocol: TLSv1.2, cipher: ECDHE-RSA-AES256-GCM-SHA384, bits: 
256, compression: off)
Type "help" for help.

my_main_data_base=> SELECT datname FROM pg_database;
     datname
-------------------
 template0
 rdsadmin
 template1
 postgres
 my_main_data_base
 another_data_base
(6 rows)

my_main_data_base=> VACUUM FREEZE; SELECT relname, age(relfrozenxid) AS xid_ag
e FROM pg_class JOIN pg_stat_all_tables USING (relname) ORDER BY xid_age DESC 
LIMIT 5;
VACUUM
       relname        | xid_age
----------------------+---------
 pg_toast_1150794     |   63707
 a_user_table         |   63707
 another_user_table   |   63707
 pg_toast_1223948     |   63707
 pg_toast_1223998     |   63707
(5 rows)

my_main_data_base=> \q
$ PGPASSWORD=$MY_USER_LAND_RDS_SUPER_USER_PASSWORD psql -h $MY_RDS_INSTANCE -d
another_data_base -U $MY_USER_LAND_RDS_SUPER_USER
psql (9.5.8, server 9.5.10)
SSL connection (protocol: TLSv1.2, cipher: ECDHE-RSA-AES256-GCM-SHA384, bits: 
256, compression: off)
Type "help" for help.

another_data_base=> VACUUM FREEZE; SELECT relname, age(relfrozenxid) AS xid_ag
e FROM pg_class JOIN pg_stat_all_tables USING (relname) ORDER BY xid_age DESC 
LIMIT 5;
VACUUM
      relname       | xid_age
--------------------+---------
 pg_toast_2964      |   12350
 pg_toast_3592      |   12350
 pg_toast_2396      |   12350
 pg_db_role_setting |   12350
 pg_authid          |   12350
(5 rows)

another_data_base=> \q
$ _

$MY_USER_LAND_RDS_SUPER_USER是AWS作为超级用户提供给我的。从RDS的角度来看,它是一个超级用户,但从PostgreSQL的角度来看,它是而不是的超级用户。

我原以为现在MaximumUsedTransactionIDs会减少,但它没有。它仍然在~80.000.000左右。

我已经计划在它到达100.000.000之后,我将发送一个RDS实例的开发版本,使它能够引导autovacuum进程。

问题

  1. MaximumUsedTransactionIDs是怎么回事?为什么它不收缩?
  2. 一旦启动,autovacuum会照顾MaximumUsedTransactionIDs吗?
  3. autovacuum是否与我的场景无关,因为我不时在我所有的用户土地数据库上手动运行不合格的VACUUM FREEZEs?
  4. 我应该忽略MaximumUsedTransactionIDs吗?
  5. 我能以某种方式连接到数据库rdsadminSELECT age(relfrozenxid)吗?

编辑,完成第一个请求,添加.

代码语言:javascript
运行
复制
$ PGPASSWORD=$MY_USER_LAND_RDS_SUPER_USER_PASSWORD psql -h $MY_RDS_INSTANCE -d
my_main_data_base -U $MY_USER_LAND_RDS_SUPER_USER
psql (9.6.6, server 9.5.10)
SSL connection (protocol: TLSv1.2, cipher: ECDHE-RSA-AES256-GCM-SHA384, bits: 
256, compression: off)
Type "help" for help.

postgresql=> SELECT datname, datfrozenxid FROM pg_database;
     datname       | datfrozenxid
-------------------+--------------
 template0         |         1822
 rdsadmin          |         1822
 template1         |         1822
 postgres          |         1822
 my_main_data_base |     76628948
 another_data_base |     76681257
(6 rows)

postgresql=> \q
$ _
EN

回答 1

Database Administration用户

回答已采纳

发布于 2018-10-29 19:51:08

激活参数组中的自动真空,当它达到配置级别(最小100.000.000)时,它将启动,MaximumUsedTransactionIDs将急剧下降。

票数 2
EN
页面原文内容由Database Administration提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://dba.stackexchange.com/questions/204305

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档