我们一直在使用9.5 postgres。
我们使用pgdump从该数据库中获取备份文件,然后使用它来恢复9.6 postgres。
我们无法成功恢复。通常,次要版本升级并不意味着向后破坏。
我想知道导致我们无法在9.6数据库上成功恢复的问题是什么。
我们需要这样做以防万一我们需要从归档数据备份中恢复。
答案 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