10g Flashback DROP
在10g测试库上,尝试 flashback drop table的语法时。Drop table后发现,recyelbin中并没有垃圾对象。show parameters bin察看参数,确实是on的。
后来想到是测试库,测试用户,测试表,应该建立在SYSTEM表空间上,当drop 在SYSTEM表空间上的表后,表段直接清除,不能flashback了。
看来我还是有common sence的,Oracle不推荐将用户数据建立在系统表空间上。
正常情况下,
SQL> create table t tablespace sm_data as select * from dba_objects;
Table created.
SQL> select * from tab;
TNAME TABTYPE CLUSTERID
—————————— ——- ———-
T TABLE
SQL> drop table t;
Table dropped.
SQL> select * from tab;
TNAME TABTYPE CLUSTERID
—————————— ——- ———-
BIN$LKUpoOXeT63gRAADukTDHQ==$0 TABLE
SQL> select * from user_extents;
no rows selected
SQL> select segment_name,segment_type,tablespace_name,blocks,bytes from user_segments;
SEGMENT_NAME
——————————————————————————–
SEGMENT_TYPE TABLESPACE_NAME BLOCKS BYTES
—————— —————————— ———- ———-
BIN$LKUpoOXeT63gRAADukTDHQ==$0
TABLE SM_DATA 144 1179648
SQL> show parameters bin
NAME TYPE VALUE
———————————— ———– ——————————
recyclebin string on
SQL> FLASHBACK TABLE t TO BEFORE DROP;
Flashback complete.
SQL> select * from tab;
TNAME TABTYPE CLUSTERID
—————————— ——- ———-
T TABLE
什么时候Oracle能够flashback truncate就好了。


















