只读表空间的对像删除
把表空间(TS)置入只读模式以后,这个TS的表空间的表还是可以删除,不过并不是真正删除这个表的segment,而是更新DD,从而在表空间从新回到读写模式以后,由PMON来清除DD的残留信息;
1,先建表;
SQL> create table ts tablespace perf1 as select spid from v$process;
Table created.
2.把表空间置入read only,
SQL> alter tablespace perf1 read only;
Tablespace altered.
3,删除表
SQL> drop table ts;
Table dropped.
4,查询一下DD中此表的信息
SQL> select segment_name,segment_type from dba_segments where tablespace_name='P
ERF1';
SEGMENT_NAME
--------------------------------------------------------------------------------
SEGMENT_TYPE
------------------
BIN$nHwe4ME4SjyLEeI9rtdryQ==$0
TABLE
5,看样子,得来purge了;
SQL> purge table ts;
Table purged.
6,再次查询DD信息;
SQL> select segment_name,segment_type from dba_segments where tablespace_name='P
ERF1';
SEGMENT_NAME
--------------------------------------------------------------------------------
SEGMENT_TYPE
------------------
7.9
TEMPORARY
发现类型变为了temporary,segmentname也变了;但是这个信息会一直保留在DD中;
7,把TS置回read write模式,
SQL> alter tablespace perf1 read write;
Tablespace altered.
SQL> select segment_name,segment_type from dba_segments where tablespace_name='P
ERF1';
no rows selected
发现这个对像的信息在DD中立即就消失了,这个工作是由pmon来完成,在试验中,我们可以在把TS置入
read write之前,手动supend pmon进程,发现TS虽然处于read write模式了,但是DD中被purge的对像信息不会被立即清除。所以就像有一种延时的机制,当TS在read only时,对这个TS的空间allocate/release暂停了。
阅读(2217) | 评论(0) | 转发(0) |