日期:2014-05-17  浏览次数:20729 次

数据库的回滚机制求解
本帖最后由 kcajyc1314 于 2013-06-18 16:58:55 编辑
各位大虾,小弟目前碰到一个问题。

如何能将一个已提交的事务进行回滚,比如我更新了A表(已COMMIT),现在由于业务等操作问题,需要回滚,该如何处理?假设之前更新表比较多,业务比较复杂,不想采用反向UPDATE进行数据还原,希望通过数据库事务进行自动还原!谢谢大家

------解决方案--------------------
已经提交的的事物,默认在15分钟之内就可以闪回

------解决方案--------------------
  正如楼上所说,oracle有闪回 机制 
------解决方案--------------------
flashback.......
------解决方案--------------------
已提交的事务进行回滚?

提交了就无法回滚、这叫恢复


FLASHBACK TABLE test TO TIMESTAMP TIMESTAMP '2010-3-18 10:00:00';
这要求TEST表事先有ENABLE ROW MOVEMENT.

或者把旧数据找出来然后手工写回去:
SELECT * FROM test AS OF TIMESTAMP TIMESTAMP '2010-3-18 10:00:00';