我最近意外地使用 step 方法回滚了迁移。再次运行 db:migrate 后,我的所有数据都按预期消失了。是否可以检索此数据。
问问题
235 次
1 回答
0
取自有关该主题的邮件列表:
首先要做的是关闭 postgresql 并对数据目录进行完整备份,包括您可能拥有的任何存档 WAL(pg_xlog 中的文件)。确保首先完成此操作。
接下来,你有备份吗?如果您有删除之前的基础备份,以及从基础备份到现在的所有 WAL 文件,那么您可以尝试将时间点恢复到数据丢失之前的点:
http://www.postgresql.org/docs/9.1/static/continuous-archiving.html
如果不是,我们是在谈论单行还是多行?如果它是单行,您可能可以执行一些手动步骤,例如检查页面以恢复数据。
另一种选择是尝试 pg_resetxlog(首先确保您有一个安全的备份!):
http://www.postgresql.org/docs/9.1/static/app-pgresetxlog.html
并尝试将当前事务 ID 设置为删除运行之前。然后您可以使用 pg_dump 或以其他方式导出已删除的行。
你可以在这里阅读更多:http: //postgresql.1045698.n5.nabble.com/Recover-rows-deleted-td5710305.html
于 2013-06-19T13:13:12.757 回答