我必须承认,我只是将小狗搞砸了生产数据库。在SQL Developer中运行更新查询时,我没有意识到只有一部分查询被突出显示。如果您有使用SQL Developer的经验,这意味着SQL Developer将只执行查询的子部分 - 在这种情况下,显然是“UPDATE< table> SET< column> =< value>”突出显示......
这意味着查询变为“UPDATE< table> SET< column> =< value>”。是的,提交已被按下。
除了从备份恢复之外,还有什么方法可以检索到这些信息,还是现在只是搞砸了?
答案 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)
如果您没有打开隐式事务提交并且仍然打开相同的连接,则可以回滚上一个事务。如果没有从备份恢复是我能想到的唯一其他选择。