我正在尝试在PostgreSQL中恢复集群备份。 我使用了pg_dumpall命令生成了一个包含SQL查询的纯文本文件。 然而,在我尝试还原它时,出现了以下错误:
有什么办法可以管理这个问题吗?或者至少有什么办法可以以任何方式恢复集群备份吗?非常感谢!
编辑:
如果我使用psql进行还原:
当我尝试还原数据库备份(使用pg_dump生成)时,我也收到了同样的错误,但我已经解决了那个问题。 在那种情况下,pg_restore无法识别包含SQL查询的纯文本,因此我更改了命令。请注意保留HTML标记。pg_restore:[archiver]输入文件似乎不是有效的归档
pg_dump db_name -Fc -U user -h host -p port > my_db_backup.dump
并改为写:
pg_dump db_name -Fp -U user -h host -p port > my_db_backup.dump
这样生成的文件不是纯文本,所以pg_restore可以很好地处理它。
现在,我正在尝试使用pg_dumpall进行管理,但是没有一个-F参数。我的代码(使用Python3编写,但任何语言都可使用相同的命令)如下:
pg_dumpall -U user -h host -p port > my_cluster_backup.dump
有什么办法可以管理这个问题吗?或者至少有什么办法可以以任何方式恢复集群备份吗?非常感谢!
编辑:
如果我使用psql进行还原:
psql -U user -h host -p port -f my_cluster_backup.dump postgres'
看起来程序在运行,许多命令显示在控制台中,但是每个命令都会报“它已经存在”的错误。我无法理解,因为我有两个集群(端口5432和5433),我猜它正在尝试在5432端口上恢复,而我确定我连接到的是5433端口。是否有人以前遇到过这个问题?