Postgresql Postgres不接受命令,真空失败

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:

首先,是的,它是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:  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;