【问题标题】:Postgresql: Cannot restore schema from pg_dumpPostgresql:无法从 pg_dump 恢复模式
【发布时间】:2019-06-25 15:14:55
【问题描述】:

我正在尝试使用pg_dump 将架构从一个数据库移动到另一个数据库。 我正在运行此命令来备份我的架构

pg_dump.exe -h myhost -U postgres -d mydb-n schema> C:\Temp\schema.dump

要恢复它,我将SQL 复制到pgadmin,但我收到此错误。不知道是什么问题?

ERROR:  syntax error at or near "2"
LINE 284: 2 \N  Unregistered. Item  \N  2016-07-13 00:00:00 \N

是否有最好的推荐方法来备份/恢复 postgres 数据库?我在备份/恢复数据库时经常遇到类似的问题,我开始担心有一天我会丢失有价值的数据。

【问题讨论】:

    标签: database postgresql database-backups


    【解决方案1】:

    纯文本pg_dump 无法使用 pgAdmin 恢复,因为 pgAdmin 无法执行 COPY FROM STDINpg_dump 默认使用该数据。

    您必须使用 psql 来恢复转储。

    另一种方法是使用pg_dump--inserts 选项,以便将数据转储为INSERT 状态。不过,这会带来性能损失。

    【讨论】:

    • 只是为了澄清,用pgAdmin,你的意思是你不能使用恢复功能吗?我的意思是将纯文本 sql 复制到查询工具中,以像任何其他 SQL 查询一样运行它。
    • 对,这就是你不能用 pgAdmin 做的事情。
    • 好的,谢谢。我没有使用恢复功能,只是复制/粘贴并在纯文本 sql 上运行。也许错误与索引有关。认为纯文本会是一个更安全的选择,但似乎我必须重新考虑我的策略。我只是想将我的架构和数据从我的开发数据库复制到我的生产数据库,保留、pk、fk 以及触发器和序列值。
    • 明白了!抱歉让我自己困惑了一秒。 psql 运行成功
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-12-05
    • 2019-12-07
    • 1970-01-01
    • 2020-12-04
    • 2019-03-05
    • 1970-01-01
    • 2016-02-08
    相关资源
    最近更新 更多