【发布时间】:2017-04-08 15:44:21
【问题描述】:
我正在使用 pg_dump 和 pg_restore 来备份和恢复 postgres 数据库。
以下是与此问题相关的文档中的一些信息 对于Pg_restore,-C选项描述如下
-C
--创建
在还原到数据库之前创建数据库。如果还指定了 --clean , > > 之前删除并重新创建目标数据库 连接到它。使用此选项时,以 -d 命名的数据库 仅用于发出初始 DROP DATABASE 和 CREATE DATABASE 命令。所有数据都恢复到出现在 存档。
但是,即使我将此选项与 pg_restore 一起使用,我也会收到以下错误
pg_restore: [archiver (db)] 连接到数据库“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_resore 恢复数据库
pg_restore -C -d test -v -h xxhostxx -p 5432 -U xxuserxx test_pg_dump.dmp**
我不明白这里有什么问题!我做错什么了吗? 如果需要更多信息,请告诉我。
【问题讨论】:
标签: postgresql pg-dump pg-restore