|
------ ----------
2012-10-25 10:31:02*000000 3783972
SQL> /*
SQL> SQL> show parameter undo
SQL>
SQL> NAME TYPE VALUE
SQL> ------------------------------------ ----------- --------------------
SQL> undo_management string AUTO
SQL> undo_retention integer 1200
SQL> undo_tablespace string UNDOTBS1
SQL> SQL> --scope的取值: momery spfile both
SQL> SQL> alter system set undo_retention=900 scope=both;
SQL> */
SQL> --权限 grant flashback any table to scott;
SQL> create table flashback_table
2 (fid number,fname varchar2(20));
表已创建。
SQL> insert into flashback_table values(1,'Tom');
已创建 1 行。
SQL> insert into flashback_table values(2,'Mary');
已创建 1 行。
SQL> insert into flashback_table values(3,'Mike');
已创建 1 行。
SQL> commit;
提交完成。
SQL> --当前时间
SQL> select to_char(systimestamp,'yyyy-mm-dd hh24:mi:ss*ff') 时间,
2 timestamp_to_scn(systimestamp) SCN
3 from dual;
时间 SCN
----------------------------- ----------
2012-10-25 10:36:22*046000 3784220
SQL> select * from flashback_table;
FID FNAME
---------- --------------------
1 Tom
2 Mary
3 Mike
SQL> --删除mary
SQL> delete from flashback_table where fid =2;
已删除 1 行。
SQL> commit;
提交完成。
SQL> select * from flashback_table;
FID FNAME
---------- --------------------
1 Tom
3 Mike
SQL> --执行闪回表
SQL> flashback table flashback_table to scn 3784220;
flashback table flashback_table to scn 3784220
*
第 1 行出现错误:
ORA-08189: 因为未启用行移动功能, 不能闪回表
SQL> --开启表的行移动
SQL> alter table flashback_table enable row movement;
表已更改。
SQL> flashback table flashback_table to scn 3784220;
闪回完成。
SQL> select * from flashback_table;
FID FNAME
---------- --------------------
1 Tom
2 Mary
3 Mike
SQL> --问题:如何获取最近的一个时间?
SQL> host cls
SQL> --闪回删除
SQL> select * from tab;
TNAME TABTYPE CLUSTERID
------------------------------ ------- ----------
DEPT TABLE
EMP TABLE
BONUS TABLE
SALGRADE TABLE
EMP20 TABLE
TESTSAVEPOINT TABLE
TEST2 TABLE
MYPERSON TABLE
EMP10 TABLE
EMPINCOME TABLE
VIEW1 VIEW
TNAME TABTYPE CLUSTERID
------------------------------ ------- ----------
VIEW2 VIEW
TESTSEQ TABLE
HREMP SYNONYM
MSG1 TABLE
TEST1 TABLE
PM_CI TABLE
PM_STU TABLE
FLASHBACK_TABLE TABLE
SYS_TEMP_FBT TABLE
已选择20行。
SQL> drop table test1;
表已删除。
SQL> show recyclebin
ORIGINAL NAME RECYCLEBIN NAME OBJECT TYPE DROP TIME
---------------- ------------------------------ ------------ -------------------
TEST1 BIN$Rn2qG7V+SO2k+aNrG/oYww==$0 TABLE 2012-10-25:10:45:11
SQL> purge recyclebin;
回收站已清空。
SQL> --管理员没有回收站
SQL> select * from TESTSEQ;
TID TNAME
---------- --------------------
3 aaa
4 aaa
5 aaa
8 aaa
SQL> drop table TESTSEQ;
表已删除。
SQL> show recyclebin
ORIGINAL NAME RECYCLEBIN NAME OBJECT TYPE DROP TIME
---------------- ------------------------------ ------------ -------------------
TESTSEQ BIN$UhseqyX1Reyl5iurpupyEg==$0 TABLE 2012-10-25:10:47:38
SQL> select * from TESTSEQ;
select * from TESTSEQ
*
第 1 行出现错误:
ORA-00942: 表或视图不存在
SQL> select * from tab;
TNAME TABTYPE CLUSTERID
------------------------------ ------- ----------
DEPT TABLE
EMP TABLE
BONUS TABLE
SALGRADE TABLE
EMP20 TABLE
TESTSAVEPOINT TABLE
TEST2 TABLE
MYPERSON TABLE
EMP10 TABLE
E |