我正在运行以下命令在我的生产服务器上创建所有数据库的转储:
prodserver:/# pg_dumpall -U postgres -h 1.1.1.1 > prod.sql
在我的开发框中,我也做了备份:
devserver:/# pg_dumpall -U postgres -h 1.1.1.1 > dev.sql
然后我尝试将生产数据库恢复到开发中,如下所示:
devserver:/# psql -f prod.sql -U postgres
它运行没有错误。它似乎是创建表/导入数据。我知道,因为如果我第二次运行它,我会收到某些数据已经存在/关系已经存在的消息。
但是当我这样登录时:
psql -U postgres -d databasename
数据看起来与旧的dev数据相同。我尝试了以下生产数据,据说可以恢复:
select count(*) from widgets;
我将它与我使用开发数据库时返回的计数进行比较,它们是相同的。 看起来数据库没有正确恢复。
我必须:
我一直在使用http://www.postgresql.org/docs/9.1/static/app-pg-dumpall.html作为指南...... 我指的是页面底部的示例。
对于我可能做错的任何建议都将不胜感激。
感谢。
编辑1
我还检查了以下内容:
我打开了prod.sql文件并找到了如下的插入语句:
INSERT INTO widgets_to_wiget_groups VALUES (363, 15);
然后我在数据库上做了一个select语句,看看我是否在表中有这个条目但是我没有...也许它正在恢复它但是在另一个用户的上下文中?
答案 0 :(得分:0)
我必须跑
CREATE DATABASE databasename;
手动创建db,然后将restore命令更改为:
devserver:/# psql -f prod.sql -U postgres -d databasename