我正在使用 pg_dump 和 pg_restore 进行 postgres 数据库的备份和还原。
以下是一些文档中与此问题相关的信息。对于 Pg_restore,-C 选项描述如下:
-C
--create
在还原之前创建数据库。如果也指定了 --clean,则在连接到目标数据库之前删除并重新创建目标数据库。当使用此选项时,使用 -d 指定的数据库仅用于发出最初的 DROP DATABASE 和 CREATE DATABASE 命令。所有数据都被还原到存档中显示的数据库名称。
然而,即使我在 pg_restore 中使用此选项,仍会出现以下错误:
pg_restore:[archiver (db)] 连接到数据库“test”失败: FATAL: 数据库“test”不存在
根据说明,-C 选项应该创建缺少的数据库。但在我的情况下并没有这样做。
以下是我进行备份和还原的步骤:
- 使用 pg_dump 备份数据库
pg_dump -N backup -d test --format custom -v -h xxhostxx -p 5432 -U xxuserxx --lock-wait-timeout 300000 -f test_pg_dump.dmp
注意:不使用-C选项,因为该选项仅针对纯文本格式有意义
删除了test数据库
使用pg_restore来恢复数据库
pg_restore -C -d test -v -h xxhostxx -p 5432 -U xxuserxx test_pg_dump.dmp**
我不明白问题出在哪里!我做错了什么吗? 如果需要更多信息,请告诉我。
postgres-v
应该是postgres -v
。我不能在帖子中编辑少于6个字符。 - adamczi