【问题标题】:Can't restore a dump backup file for Postgres using pg_restore无法使用 pg_restore 恢复 Postgres 的转储备份文件
【发布时间】:2015-04-14 18:05:19
【问题描述】:

我使用这个为我的 Postgres 9.3.4 生成了一个转储备份文件:

pg_dump table_name -U myusername -h localhost -O > backup.dump

现在我正在尝试使用以下方法备份旧数据库:

pg_restore -U myusername -n public -d table_name  backup.dump

但我不断收到此错误:

pg_restore: [archiver] input file appears to be a text format dump. Please use psql.

请注意,该文件不是普通的 sql 文件,因为我使用 pg_dump 生成了它。

我使用了以下命令:

psql perchwell -U myusername -f backup.dump -v ON_ERROR_STOP=1

并开始收到以下错误:

SET
SET
SET
SET
SET
SET
psql:backup.dump:16: ERROR:  schema "propertydir" already exists

【问题讨论】:

    标签: postgresql psql


    【解决方案1】:

    pg_dump的默认输出格式其实是明文sql脚本。因此,请使用 psql 进行带有 -Fc 标志的导入或还原。

    【讨论】:

    • 感谢 Eelke,我正在使用 psql -U myusername -d db_name -1 -f backup.dump,但我不断收到:“无效命令 \N”。我做错什么了吗?
    • 使用 pg_dump,而不是 psql
    • @EkiEqbal 请编辑您的问题以显示完整输出。使用-v ON_ERROR_STOP=1 运行 psql。
    • 你得到一个模式已经存在,因为数据库不干净。首先创建一个新数据库并导入其中。
    • marceljg 他正在尝试导入它——不是 pg_dump 的用途。
    【解决方案2】:

    您的错误:pg_restore: [archiver] 输入文件似乎是文本格式转储。请使用 psql

    Bug 表示使用 psql 命令导入数据库。

    cat your-dump-pg-file.dump | psql -d your-database
    

    这样,您可以轻松恢复文件

    另外,如果你设置字符集 UTF-8,也会更好地导入。

    【讨论】:

      猜你喜欢
      • 2011-02-13
      • 2020-07-23
      • 2015-08-26
      • 2019-05-14
      • 2015-10-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多