为了学习闪回,参照oracle base 网站上oracle 10g的例子,做了以下的实验:
一、闪回查询
SQL> conn test/test@study
已连接。
SQL> desc v$database
名称 是否为空? 类型
----------------------------------------- -------- ----------------------------
DBID NUMBER
NAME VARCHAR2(9)
CREATED DATE
RESETLOGS_CHANGE# NUMBER
RESETLOGS_TIME DATE
PRIOR_RESETLOGS_CHANGE# NUMBER
PRIOR_RESETLOGS_TIME DATE
LOG_MODE VARCHAR2(12)
CHECKPOINT_CHANGE# NUMBER
ARCHIVE_CHANGE# NUMBER
CONTROLFILE_TYPE VARCHAR2(7)
CONTROLFILE_CREATED DATE
CONTROLFILE_SEQUENCE# NUMBER
CONTROLFILE_CHANGE# NUMBER
CONTROLFILE_TIME DATE
OPEN_RESETLOGS VARCHAR2(11)
VERSION_TIME DATE
OPEN_MODE VARCHAR2(10)
PROTECTION_MODE VARCHAR2(20)
PROTECTION_LEVEL VARCHAR2(20)
REMOTE_ARCHIVE VARCHAR2(8)
ACTIVATION# NUMBER
SWITCHOVER# NUMBER
DATABASE_ROLE VARCHAR2(16)
ARCHIVELOG_CHANGE# NUMBER
ARCHIVELOG_COMPRESSION VARCHAR2(8)
SWITCHOVER_STATUS VARCHAR2(20)
DATAGUARD_BROKER VARCHAR2(8)
GUARD_STATUS VARCHAR2(7)
SUPPLEMENTAL_LOG_DATA_MIN VARCHAR2(8)
SUPPLEMENTAL_LOG_DATA_PK VARCHAR2(3)
SUPPLEMENTAL_LOG_DATA_UI VARCHAR2(3)
FORCE_LOGGING VARCHAR2(3)
PLATFORM_ID NUMBER
PLATFORM_NAME VARCHAR2(101)
RECOVERY_TARGET_INCARNATION# NUMBER
LAST_OPEN_INCARNATION# NUMBER
CURRENT_SCN NUMBER
FLASHBACK_ON VARCHAR2(18)
SUPPLEMENTAL_LOG_DATA_FK VARCHAR2(3)
SUPPLEMENTAL_LOG_DATA_ALL VARCHAR2(3)
DB_UNIQUE_NAME VARCHAR2(30)
STANDBY_BECAME_PRIMARY_SCN NUMBER
FS_FAILOVER_STATUS VARCHAR2(21)
FS_FAILOVER_CURRENT_TARGET VARCHAR2(30)
FS_FAILOVER_THRESHOLD NUMBER
FS_FAILOVER_OBSERVER_PRESENT VARCHAR2(7)
FS_FAILOVER_OBSERVER_HOST VARCHAR2(512)
SQL> select current_scn,systimestamp from v$database;
CURRENT_SCN
-----------
SYSTIMESTAMP
---------------------------------------------------------------------------
897516
10-2月 -12 04.24.22.656000 下午 +08:00
已用时间: 00: 00: 00.25
SQL> select current_scn,to_char(systimestamp,'yyyy-mm-dd hh24:mi:ss') from v$dat
abase;
CURRENT_SCN TO_CHAR(SYSTIMESTAM
----------- -------------------
897545 2012-02-10 16:25:30
已用时间: 00: 00: 00.50
SQL> insert into flashback values('1');
已创建 1 行。
已用时间: 00: 00: 00.06
SQL> insert into flashback values('2');
已创建 1 行。
已用时间: 00: 00: 00.00
SQL> insert into flashback values('3');
已创建 1 行。
已用时间: 00: 00: 00.01
SQL> select current_scn,to_char(systimestamp,'yyyy-mm-dd hh24:mi:ss') from v$dat
abase;
CURRENT_SCN TO_CHAR(SYSTIMESTAM
----------- -------------------
897597 2012-02-10 16:26:28
已用时间: 00: 00: 00.04
SQL> select * from flashback;
ID
--
1
2
3
已用时间: 00: 00: 00.26
SQL> select * from flashback as of scn 897597;
未选定行
已用时间: 00: 00: 00.00
SQL> insert into flashback values('4');
已创建 1 行。
已用时间: 00: 00: 00.00
SQL> commit;
提交完成。
已用时间: 00: 00: 00.01
SQL> select current_scn,to_char(systimestamp,'yyyy-mm-dd hh24:mi:ss') from v$dat
abase;
CURRENT_SCN TO_CHAR(SYSTIMESTAM
----------- -------------------
898112 2012-02-10 16:28:12
已用时间: 00: 00: 00.14
SQL> select * from flashback as of scn 898112;
ID
--
1
2
3
4
已用时间: 00: 00: 00.03
SQL> insert into flashback values('5');
已创建 1 行。
已用时间: 00: 00: 00.00
SQL> commit;
提交完成。
已用时间: 00: 00: 00.06
SQL> select current_scn,to_char(systimestamp,'yyyy-mm-dd hh24:mi:ss') from v$dat
abase;
CURRENT_SCN TO_CHAR(SYSTIMESTAM
----------- -------------------
898124 2012-02-10 16:28:44
已用时间: 00: 00: 00.31
SQL> select * from flashback as of scn 897597;
未选定行
已用时间: 00: 00: 00.01
SQL> select * from flashback as of scn 898112;
ID
--
1
2
3
4
已用时间: 00: 00: 00.01
SQL> select * from flashback;
ID
--
1
2
3
4
5
已用时间: 00: 00: 00.01
SQL> select * from flashback as of timestamp to_timestamp('2012-02-10 16:28:44',
'yyyy-mm-dd hh24:mi:ss');
ID
--
1
2
3
4
5
已用时间: 00: 00: 00.00
SQL> select * from flashback as of timestamp to_timestamp('2012-02-10 16:28:12',
'yyyy-mm-dd hh24:mi:ss');
ID
--
1
2
3
4
已用时间: 00: 00: 00.03
二、闪回删除
drop table tablename purge 和purge table tablename 可以清除回收站里已删除的表信息,导致表无法被闪回回来。
SQL> drop table flashback;
表已删除。
已用时间: 00: 00: 00.28
SQL> show recyclebin
ORIGINAL NAME RECYCLEBIN NAME OBJECT TYPE DROP TIME
---------------- ------------------------------ ------------ -------------------
FLASHBACK BIN$Mc1fEsuER7aZB4uBD4l56A==$0 TABLE 2012-02-10:17:10:16
SQL> flashback table flashback to before drop;
闪回完成。
已用时间: 00: 00: 00.03
SQL> select * from flashback;
ID
--
1
2
3
4
5
SQL> drop table flashback;
表已删除。
已用时间: 00: 00: 00.06
SQL> show recyclebin
ORIGINAL NAME RECYCLEBIN NAME OBJECT TYPE DROP TIME
---------------- ------------------------------ ------------ -------------------
FLASHBACK BIN$tvRAsgUQRrG+WD9Uk//aIQ==$0 TABLE 2012-02-10:17:17:03
SQL> flashback table flashback to before drop;
闪回完成。
已用时间: 00: 00: 00.06
SQL> drop table flashback;
表已删除。
已用时间: 00: 00: 00.04
SQL> show recyclebin
ORIGINAL NAME RECYCLEBIN NAME OBJECT TYPE DROP TIME
---------------- ------------------------------ ------------ -------------------
FLASHBACK BIN$+5VWz/EZQ/eyfl71Xl96nw==$0 TABLE 2012-02-10:17:20:22
SQL> flashback table flashback to before drop rename to flash_drop;
闪回完成。
已用时间: 00: 00: 00.03
SQL> select * from flash_drop;
ID
--
1
2
3
4
5
已用时间: 00: 00: 00.03
SQL> create table flashback as select * from flash_drop;
表已创建。
已用时间: 00: 00: 00.64
SQL> drop table flashback;
表已删除。
已用时间: 00: 00: 00.09
SQL> show recyclebin
ORIGINAL NAME RECYCLEBIN NAME OBJECT TYPE DROP TIME
---------------- ------------------------------ ------------ -------------------
FLASHBACK BIN$Uo26MrOfRI+R/SIAjwVCag==$0 TABLE 2012-02-10:17:22:28
SQL> purge table flashback;
表已清除。
已用时间: 00: 00: 00.07
SQL> show recyclebin
SQL> drop table flash_drop purge;
表已删除。
已用时间: 00: 00: 00.23
SQL> show recyclebin
SQL> commit;
提交完成。
已用时间: 00: 00: 00.01
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/22275400/viewspace-716035/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/22275400/viewspace-716035/