oracle怎样恢复最后一次commit的数据? 情况是这样的,我在PL/SQL里用的update 语句,更新一个字段的数据,没有加条件,执行完后按F10提交了,结果已经写入数据库,后来发现更新错了,现在想改回为update以前的,相当于rollback,不知有没有办法做到?有知道的帮忙解决下,谢谢了. 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 10g 以上的可以使用flashback对表进行闪回如果不是10g的话,只能用不完全恢复了。 flashback,支持使用这个来恢复,但限制要10g以上 人家是update, 9i是可以闪回去的,只不过看你是什么时候发生的这事儿了.如果flashback已经闪不到了,那么就logmnr吧. 确实,9i也支持 update的闪回 能再教下flashback怎么用吗?我是这样用的:flashback table 表名 to timestampto_timestamp('2009-07-23 13:58:00', 'YYYY-MM-DD HH24:MI:SS');提示因为未启用行移动功能,不能闪回表.用的是10G数据库. 大家都说用闪回,那我就来个别的。不怕麻烦就用时间函数试试select * from tab_name as of timestamp to_timestamp('20090724120000','yyyymmddHH24miss')这个可以查询出tab_name这个表在2009-07-24 12点之前的数据。 9i只是支持闪回查询,也就是说可以看到最后一次commit之前的数据(但要保证undo表空间中的数据没有被覆盖)。10G是支持闪回的,也是靠UNDO中的数据支撑的。在10G中,做闪回之前,要开启表的移动功能:alter table enable row movement; 9I是用了UNDO,10G开始用一个闪回的文件区,大小可以设置 对于flashback,9i和10g都是用的undo中的数据。但对于flashback database,在10g中才用到闪回区(flashback_area)中的闪回文件。在默认情况下,闪回区中保存的是:归档日志文件,如果开启了数据库的闪回功能,则还会将数据库的闪回日志文件保存在这个目录中,当然,在闪回区中,还可以保存数据文件,控制文件,日志文件,rman的相关文件。闪回区本身与flashback table功能无关。flashback table用到的是Undo表空间中的数据(9i,10g) 为什么不用RMAN???RMAN我记得可以rollback到任何一个时间点, 只要你记得commit的时间(越准确越好), 就搞定. 求助!关于oracle整数数据类型 ORACLE表主键自增长问题 请教大家Oracle入门到精通的学习路线 更改了控制文件参数后,数据库就无法打开了 Oracle入门基本知识一点通 求助高级sum应用 怎样查看创建的view? 利用触发器做dml操作日志 请教有些汉字输入到oracle8.1.7中变成了中文问号,如何处理? 怎么执行我的这个存储过程呀? Oracle 过滤法定假期 SQL无效数字错?
10g 以上的可以使用flashback对表进行闪回如果不是10g的话,只能用不完全恢复了。
确实,9i也支持 update的闪回
我是这样用的:
flashback table 表名 to timestamp
to_timestamp('2009-07-23 13:58:00', 'YYYY-MM-DD HH24:MI:SS');
提示因为未启用行移动功能,不能闪回表.
用的是10G数据库.
不怕麻烦就用时间函数试试select * from tab_name as of timestamp to_timestamp('20090724120000','yyyymmddHH24miss')这个可以查询出tab_name这个表在2009-07-24 12点之前的数据。
对于flashback,9i和10g都是用的undo中的数据。
但对于flashback database,在10g中才用到闪回区(flashback_area)中的闪回文件。
在默认情况下,闪回区中保存的是:归档日志文件,如果开启了数据库的闪回功能,则还会将数据库的闪回日志文件保存在这个目录中,
当然,在闪回区中,还可以保存数据文件,控制文件,日志文件,rman的相关文件。闪回区本身与flashback table功能无关。
flashback table用到的是Undo表空间中的数据(9i,10g)
只要你记得commit的时间(越准确越好), 就搞定.