在甲骨文搞砸了桌子

时间:2010-02-12 22:06:18

标签: oracle database-restore

我必须承认,我只是将小狗搞砸了生产数据库。在SQL Developer中运行更新查询时,我没有意识到只有一部分查询被突出显示。如果您有使用SQL Developer的经验,这意味着SQL Developer将只执行查询的子部分 - 在这种情况下,显然是“UPDATE< table> SET< column> =< value>”突出显示......

这意味着查询变为“UPDATE< table> SET< column> =< value>”。是的,提交已被按下。

除了从备份恢复之外,还有什么方法可以检索到这些信息,还是现在只是搞砸了?

3 个答案:

答案 0 :(得分:9)

在Oracle上,如果您的数据库是9i或更高,并且您的撤消不是太旧,那么您将获得神奇的flashback query。类似的东西:

SELECT ...
FROM <table> 
AS OF TIMESTAMP TO_TIMESTAMP('12-FEB-2010 10.55.00.000000');

如果查询返回ORA-01555 Snapshot Too Old,则表示数据库配置的undo_retention值不足以进行恢复...

答案 1 :(得分:1)

是否为数据库创建了还原段?如果是这样,你可以回滚你刚才做的 - 如果有足够的空间。

答案 2 :(得分:0)

如果您没有打开隐式事务提交并且仍然打开相同的连接,则可以回滚上一个事务。如果没有从备份恢复是我能想到的唯一其他选择。