首页 > 代码库 > 删除临时表空ora-25152错误
删除临时表空ora-25152错误
删除临时表空间,或者收缩临时表空间经常会出现表空间占用等情况。
下面我们就对这种情况进行处理,
首先查找被锁的sid:
SELECT a.INST_ID,b.TABLESPACE
, b.segfile#
, b.segblk#
, ROUND ( ( ( b.blocks * p.VALUE ) / 1024 / 1024 ), 2 ) size_mb
, a.SID
, a.serial#
, a.username
, a.osuser
, a.program
, a.status
FROM gv$session a
, gv$sort_usage b
, gv$process c
, gv$parameter p
WHERE p.NAME = ‘db_block_size‘
AND a.saddr = b.session_addr
AND a.paddr = c.addr
ORDER BY b.TABLESPACE
, b.segfile#
, b.segblk#
, b.blocks;
, b.segfile#
, b.segblk#
, ROUND ( ( ( b.blocks * p.VALUE ) / 1024 / 1024 ), 2 ) size_mb
, a.SID
, a.serial#
, a.username
, a.osuser
, a.program
, a.status
FROM gv$session a
, gv$sort_usage b
, gv$process c
, gv$parameter p
WHERE p.NAME = ‘db_block_size‘
AND a.saddr = b.session_addr
AND a.paddr = c.addr
ORDER BY b.TABLESPACE
, b.segfile#
, b.segblk#
, b.blocks;
通过查找就可以找到相关临时表空间的sid,和serial#
然后同过ALTER system kill session ‘sid,serial#‘删除。
下面就可以删除临时表空间或者收缩临时表空间。
下面介绍一种更为方便的方法
select ‘alter system kill session ‘‘‘||a.sid||‘,‘||a.serial#||‘‘‘ immediate;‘
from
v$session a,
v$sort_usage b,
v$process c,
v$parameter d
where
d.name = ‘db_block_size‘
and
a.saddr = b.session_addr
and
a.paddr = c.addr
and
b.tablespace=‘TEMP‘ -- 需要收缩或者删除的临时表空间名称
order by
b.tablespace,
b.segfile#,
b.segblk#,
b.blocks;
from
v$session a,
v$sort_usage b,
v$process c,
v$parameter d
where
d.name = ‘db_block_size‘
and
a.saddr = b.session_addr
and
a.paddr = c.addr
and
b.tablespace=‘TEMP‘ -- 需要收缩或者删除的临时表空间名称
order by
b.tablespace,
b.segfile#,
b.segblk#,
b.blocks;
可以批量的结束临时表空间的占用。
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。