Postgresql Postgres不接受命令,真空失败
首先,是的,它是Postgres(8.4)的旧版本,但升级目前不是一个选项 在具有许多表和行的大型生产数据库上,数据库出现以下错误:Postgresql Postgres不接受命令,真空失败,postgresql,postgresql-8.4,Postgresql,Postgresql 8.4,首先,是的,它是Postgres(8.4)的旧版本,但升级目前不是一个选项 在具有许多表和行的大型生产数据库上,数据库出现以下错误: dbname user 2017-09-13 13:30:01.570 UTC ERROR: database is not accepting commands to avoid wraparound data loss in database "dbname" dbname user 2017-09-13 13:30:01.570 UTC HINT:
dbname user 2017-09-13 13:30:01.570 UTC ERROR: database is not accepting commands to avoid wraparound data loss in database "dbname"
dbname user 2017-09-13 13:30:01.570 UTC HINT: Stop the postmaster and use a standalone backend to vacuum database "dbname".
You might also need to commit or roll back old prepared transactions.
我们尝试抽真空数据库(在单用户模式下),但是这不是很成功(在失败之前运行了12个小时):
重新启动后,数据库仍不接受命令。我们尝试了重新索引,但由于原始问题而失败
我试图使用以下方法定位OID 1453898:
SELECT 1453898::regclass;
但没有结果
还可以做些什么来清理和解决此问题?如果XID超过最大值,并且不存在关系,我会开始考虑转储和恢复数据(最好是恢复到适当的版本),我可能会走这条路,虽然升级版本是不可能的,因为一些内部postgres更改使应用程序不能直接与较新版本兼容。
SELECT 1453898::regclass;