临时表空间-临时数据文件管理。

实战案例,正确删除临时表空间临时数据文件步骤

1 确定对应的临时文件不包含任何事务

SELECT 'ALTER SYSTEM KILL SESSION '||''''||T2.SID||','||T2.SERIAL#||''''||' IMMEDIATE;',T1.SEGFILE#,T2.STATUS,T2.TYPE FROM V$SORT_USAGE T1,V$SESSION T2 WHERE T1.SESSION_ADDR=T2.SADDR。

2 删除临时文件 

alter tablespace temp drop tempfile 'DADWADA'; --会删除文件,

 

1创建临时文件时候,如果创建大小为10G的临时表空间对应文件,创建很快,其他文件并没有10G,在后续的使用中会增加到10G。

2 如果文件系统空间不足,导致文件无法扩展到10G(此处文件设置的为autoextend off模式),在10.2版本中,数据库会offline此临时文件。

select a1.sid,

       a1.serial#,

       a1.status,

       a1.LOGON_TIME,

       a1.EVENT,

       a1.PROGRAM,

       a3.SPID,

       a2.SEGFILE# -

       (select value from v$Parameter where name = 'db_files')

  From v$session a1, v$sort_usage a2, v$process a3

 where a1.SADDR = a2.SESSION_ADDR

   and a1.paddr = a3.ADDR

   order by a1.LOGON_TIME asc

 select * From dba_temp_files

alter database tempfile 1 drop;  ---不会删除文件

可以使用reuse选项进行重用。

alter tablespace temp drop tempfile 'DADWADA'; --会删除文件,

select * From dba_objects t1 ,dba_objects t2 order by t1.object_id

ERROR at line 1:

ORA-01135: file 201 accessed for DML/query is offline

ORA-01110: data file 201: '/nmsport/nmsporta/PORTAL_TEMP01.dbf'

SELECT * FROM DBA_TEMP_FILES;

SELECT SID, SERIAL#, LOGON_TIME, STATUS, EVENT

  fROM V$SESSION A

 WHERE A.SADDR IN

       (SELECT SESSION_ADDR FROM V$SORT_USAGE WHERE SEGFILE# > 201) ;

为空

 

alter database tempfile 1 drop;

如果不能删除则报错

ORA-25152, TEMPFILE此时不能被删除。 在用就不让删除?

  select * From dba_temp_files

 


 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值