首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何实现pg_restore

如何实现pg_restore
EN

Stack Overflow用户
提问于 2012-12-04 13:35:03
回答 1查看 34.5K关注 0票数 15

我正在通过命令行将我的数据库'mydatabase‘转储到文本文件'mydatabase.sql’中。

代码语言:javascript
复制
"C:/Program Files (x86)/PostgreSQL/9.1/bin/pg_dump.exe " --host localhost --port 5432 --username "postgres" --no-password --verbose --file "C:\Users\User 1\Desktop\mydatabase.sql" "mydatabase"

一切都很好。但是,经过多次尝试,我无法用数据将这些文件返回到数据库。

但是,如果删除此数据库中的所有表,则可以使用:

代码语言:javascript
复制
psql -f "C:\Users\User 1\Desktop\mydatabase.sql" "mydatabase" "postgres"

这是所有的数据。问题是我无法通过VBNET/shell运行pgsl,所以我更需要pg_restore.exe --这是我的尝试:

代码语言:javascript
复制
"C:/Program Files (x86)/PostgreSQL/9.1/bin/pg_restore.exe " -i -h localhost -p 5432 -U postgres -d "mydatabase" -v "C:\Users\User 1\Desktop\mydatabase.sql"

...where我收到消息:

C:\User\ 1>"C:/Program (x86)/PostgreSQL/9.1/bin/pg_restore.exe“-i -h localhost -p 5432 -U postgres -d "mydatabase”mydatabase“-v”C:\User\User 1\Desktop\mydatabase.sql“无效二进制文件"C:/Program (x86)/PostgreSQL/9.1/bin/pg_restore.exe”pg_restore.exe :归档输入文件“似乎不是有效的归档文件。

在尝试还原之前,我在服务器上有空的数据库“mydatabase”(没有表)。请提供任何帮助,使pg_restore与'mydatabase.sql‘一起工作,后者与pg_dump一起转储,并且显然包含适当的数据,这样我就可以通过纯命令行或VBNET/shell来使用它。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-12-04 13:44:05

在pg_dump中,指定-F t标志。这告诉pg_dump以tar格式创建备份,这适合通过pg_restore进行恢复。

代码语言:javascript
复制
"C:/Program Files (x86)/PostgreSQL/9.1/bin/pg_dump.exe " --host localhost --port 5432 --username "postgres" --no-password --verbose -F t --file "C:\Users\User 1\Desktop\mydatabase.sql" "mydatabase"
票数 12
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13704160

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档