只读表空间的对像删除
时间:2010-09-10 来源:oracle狂热分子
只读表空间的对像删除
把表空间(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暂停了。
把表空间(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暂停了。
相关阅读 更多 +