表空间及物理文件 删除

背景:

同事不小心创建了一个ts_xx_temp物理文件,导致其他同事经常问我这个是否可以作为临时表空间,为了不引起歧义,删除表空间及物理文件

过程

在测试环境中

创建一个物理文件且表空间名称为TS_ZYK_T
create tablespace TS_ZYK_T
DATAFILE
'+DATADG/prod/datafile/TS_ZYK_T_1M' SIZE 1m;

select * from dba_data_files;
查询到表空间名称为TS_ZYK_T;

SQL> drop tablespace TS_ZYK_T including contents and datafiles;
Tablespace dropped


数据文件中没有了

登陆到服务器上

[ grid@vmac1 ~]$ export ORACLE_SID=+ASM1
[ grid@vmac1 ~]$ asmcmd
ASMCMD> ls
DATADG/
SYSTEDG/
ASMCMD> cd DATADG 
ASMCMD> ls
PROD/
arch/
ASMCMD> cd PROD
ASMCMD> ls
ARCHIVELOG/
CONTROLFILE/
DATAFILE/
ONLINELOG/
PARAMETERFILE/
TEMPFILE/
spfilePROD.ora
ASMCMD> cd DATAFILE             
ASMCMD> ls
SYSAUX.260.914060367
SYSTEM.259.914060331
TS_ZYK_DATA.278.914434281
TS_ZYK_DATA_1G
UNDOTBS1.261.914060391
UNDOTBS2.263.914060423
USERS.264.914060433

发现确实没有表空间TS_ZYK_T

具体步骤:

SQL> select * from dba_data_files;
SQL> drop tablespace TS_ZYK_T including contents and datafiles;

asmcmd
ASMCMD> ls
DATADG/
SYSTEDG/
ASMCMD> cd DATADG 
ASMCMD> cd PROD
ASMCMD> cd DATAFILE             
ASMCMD> ls
SYSAUX.260.914060367
SYSTEM.259.914060331
TS_ZYK_DATA.278.914434281
TS_ZYK_DATA_1G
UNDOTBS1.261.914060391
UNDOTBS2.263.914060423
USERS.264.914060433



问题:
oracle 11g 有个新特性:oracle 创建完segment,如果没有数据的话,不使用表空间,如果将表空间删除,而该表后面有数据就会报错,
表空间不存在?



答:

在测试中发现,表会被删除,不会报报空间不存在


以下是测试过程

create tablespace TS_ZYK_TEMP
DATAFILE
'+DATADG/prod/datafile/TS_ZYK_TEP_1M' SIZE 1m;

CREATE TABLE GH_TEMP_TABLESPACE
(A VARCHAR2(100))
tablespace TS_ZYK_TEMP
    pctfree 10
    initrans 1
    maxtrans 255
    storage
    (
      initial 8M
      next 1M
      minextents 1
      maxextents unlimited
    );


SQL> SELECT * FROM USER_SEGMENTS T WHERE T.segment_name='GH_TEMP_TABLESPACE';
SEGMENT_NAME                                                                     PARTITION_NAME                 SEGMENT_TYPE       SEGMENT_SUBTYPE TABLESPACE_NAME                     BYTES     BLOCKS    EXTENTS INITIAL_EXTENT NEXT_EXTENT MIN_EXTENTS MAX_EXTENTS   MAX_SIZE RETENTION MINRETENTION PCT_INCREASE  FREELISTS FREELIST_GROUPS BUFFER_POOL FLASH_CACHE CELL_FLASH_CACHE
-------------------------------------------------------------------------------- ------------------------------ ------------------ --------------- ------------------------------ ---------- ---------- ---------- -------------- ----------- ----------- ----------- ---------- --------- ------------ ------------ ---------- --------------- ----------- ----------- ----------------

SQL> 

在user_segment中并没有出现占用空间情况


重新查询表名发现该表名已经不存在了,那么可以这样认为删除表空间时,创建该表的动作也被消除了


上述问题中表空间不存在报错的可能性就比较小,就是说表的结构也被消除了



来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/29162273/viewspace-2120171/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/29162273/viewspace-2120171/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值