2015年4月2日星期四

ORA-25152,不让删TempFile

ASM的一个dg磁盘快到80%了,一看是Temp表空间文件太大了,打算切换文件后delete。由于是tempfile,所以必须先offline,再drop,不能像对普通datafile一样直接使用一个命令offline drop。

1。追加一tempfile进temp表空间
ALTER TABLESPACE TEMP ADD TEMPFILE  SIZE 100M AUTOEXTEND ON NEXT 2M MAXSIZE 2G;

2。SELECT * FROM  V$TEMPFILE;找到要offline的文件开始offline
ALTER DATABASE TEMPFILE '+DG_EM/ORCLEM/TEMPFILE/temp.268.865449357' OFFLINE;

3。打算删
ALTER DATABASE TEMPFILE '+DG_EM/ORCLEM/TEMPFILE/temp.268.865449357' DROP INCLUDING DATAFILES;
这里报错了ORA-25152,不让删,虽然offline了,但是还是不让删

4。找到谁在使用
SELECT S.SID, S.USERNAME, S.STATUS, U.TABLESPACE, U.SEGFILE#, U.CONTENTS, U.EXTENTS, U.BLOCKS
FROM V$SESSION S, V$SORT_USAGE U
WHERE S.SADDR=U.SESSION_ADDR
ORDER BY U.TABLESPACE, U.SEGFILE#, U.SEGBLK#, U.BLOCKS;

5。然后kill掉
SELECT SID,SERIAL# FROM V$SESSION WHERE SID = 249;
ALTER SYSTEM KILL SESSION '249,59266';

6。再删看看
ALTER DATABASE TEMPFILE '+DG_EM/ORCLEM/TEMPFILE/temp.268.865449357' DROP INCLUDING DATAFILES;

done!

没有评论:

发表评论