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!
没有评论:
发表评论