在9.6 postgres上恢复9.5 pgdump文件时出错

时间:2017-04-26 02:45:14

标签: postgresql database-backups

我们一直在使用9.5 postgres。

我们使用pgdump从该数据库中获取备份文件,然后使用它来恢复9.6 postgres。

我们无法成功恢复。通常,次要版本升级并不意味着向后破坏。

我想知道导致我们无法在9.6数据库上成功恢复的问题是什么。

我们需要这样做以防万一我们需要从归档数据备份中恢复。

2 个答案:

答案 0 :(得分:5)

从9.3升级到9.6时,我遇到了同样的错误。 每次尝试都恢复失败但转储成功。

我对此问题的解决方法是不使用自定义格式!相反,我使用普通格式。所以我尝试使用文件扩展名为sql的纯格式,使用utf8编码作为用户postgres。显然,不要忘记包含前数据,数据和后期数据,否则您的恢复将无法完成。这非常有效。

如果转储正常,也可以在转储前尝试完全真空。如果真空不好,这可能是你的问题。

答案 1 :(得分:0)

转储

pg_dump --username=postgres --format=c --file=e:/testdbdump.sql testdb 

OR

pg_dump -U username databasename >>sqlfile.sql

要还原

pg_restore --username=postgres --dbname=testdb<d:\sqlfile.sql

pg_restore --username=postgres --dbname=testdb <d:\sqlfile.sql



pg_restore --username=postgres --dbname=testdb <d:\testDBApr18.sql

pg_restore --username=postgres --dbname=testdb <c:\Backup\testdbDBApr18.sql

//对我有用的PG转储和还原

pg_dump -U postgres -h localhost --format=c testdb > db_dump_file.dump

pg_restore -U postgres -h localhost -v -d testdb db_dump_file.dump