Flashback 闪回 有6种闪回
1.Flashback Query 闪回查询
Create Table tt(Id Int,Name Varchar2(10))
Insert Into tt Values(1,'a')
Insert Into tt Values(2,'b')
Select * From tt
Select Sysdate From dual --查询当前时间 2013-12-10 16:55:58,此时数据还存在
Delete From tt --删除数据并提交
Commit --提交后直接查询tt是没有数据的
Select * From tt As Of Timestamp to_timestamp('2013-12-10 16:55:58','yyyy/mm/dd hh24:mi:ss') --查询时间戳,还能查到1,2两条数据
Select current_scn From v$database --oracle的scn,即oracle的时间 335561
Select scn_to_timestamp(335561) From dual --scn转成时间格式10-12月-13 05.02.27.000000000 下午
Select * From tt As Of Scn 335561 --使用scn做时间戳查询
Select * From dba_tablespaces --UNDOTBS1表空间,删除的数据放在该表空间内,表空间循环使用
2.Flashback Drop 闪回删除的表
Drop Table tt
Select * From Dba_Recyclebin --回收站查询被删除的表TT只是被重命名
Flashback Table tt To Before Drop --闪回drop的表
多个相同名字的对象,如tt被删除多次,想闪回较久的数据,需要在闪回时重命名,如
Flashback Table tt To Before Drop Rename To tt1 --再次闪回drop的表tt并将表明重命名为tt1
1.Flashback Query 闪回查询
Create Table tt(Id Int,Name Varchar2(10))
Insert Into tt Values(1,'a')
Insert Into tt Values(2,'b')
Select * From tt
Select Sysdate From dual --查询当前时间 2013-12-10 16:55:58,此时数据还存在
Delete From tt --删除数据并提交
Commit --提交后直接查询tt是没有数据的
Select * From tt As Of Timestamp to_timestamp('2013-12-10 16:55:58','yyyy/mm/dd hh24:mi:ss') --查询时间戳,还能查到1,2两条数据
Select current_scn From v$database --oracle的scn,即oracle的时间 335561
Select scn_to_timestamp(335561) From dual --scn转成时间格式10-12月-13 05.02.27.000000000 下午
Select * From tt As Of Scn 335561 --使用scn做时间戳查询
Select * From dba_tablespaces --UNDOTBS1表空间,删除的数据放在该表空间内,表空间循环使用
2.Flashback Drop 闪回删除的表
Drop Table tt
Select * From Dba_Recyclebin --回收站查询被删除的表TT只是被重命名
Flashback Table tt To Before Drop --闪回drop的表
多个相同名字的对象,如tt被删除多次,想闪回较久的数据,需要在闪回时重命名,如
Flashback Table tt To Before Drop Rename To tt1 --再次闪回drop的表tt并将表明重命名为tt1
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/15810196/viewspace-1079766/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/15810196/viewspace-1079766/