我正在使用pg_dump和pg_restore来备份和还原postgres数据库。带-C选项的pg_restore不会创建数据库
下面是从文档的一些信息,这将是对有关这个问题的 对于pg_restore的,-c选项描述如下
-C
--create
创建数据库在恢复之前。如果还指定了--clean,则在连接 之前,先删除并重新创建目标数据库。使用此选项时,使用-d 命名的数据库仅用于发出初始DROP DATABASE和CREATE DATABASE 命令。所有数据都将恢复到存档中出现在 中的数据库名称。
但是,即使当我使用和pg_restore这个选项,我获得以下错误
pg_restore的:归档(DB)连接到数据库的 “测试” 失败: FATAL:>数据库 “测试”不存在
根据描述-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选项,因为它是有意义的平原 - 仅限文字格式
删除了测试数据库
使用pg_resore恢复数据库
pg_restore -C -d test -v -h xxhostxx -p 5432 -U xxuserxx test_pg_dump.dmp**
我不明白这里的问题是!我做错了什么? 让我知道是否需要更多信息。
谢谢@Jendrusk – Swapnil17
在这个命令中有一个错误的人可能不会注意到:''postgres -v'应该是'postgres- v'。我无法在帖子中编辑少于6个字符。 – adamczi