近几天意外发现oracle所在的D盘占用量激增.发现oracle实例mydata下的数据文件temp01.dbf居然达到了30个G.
temp01.dbf是数据库的临时数据文件,存放在临时表空间temp中,如何减小呢.
原因:没有给临时表空间设置上限.导致数据文件无限增大.
思路1:创建新的临时表空间,设置数据文件上限,删除原来的临时表空间
a.创建新的临时表空间
CREATE TEMPORARY TABLESPACE mytemp
TEMPFILE 'D:\oracle\product\10.1.0\oradata\mybase\mytemp.dbf' SIZE
2G REUSE EXTENT MANAGEMENT local UNIFORM SIZE 256m;(不带自增长)
CREATE TEMPORARY TABLESPACE mytemp
TEMPFILE 'D:\oracle\product\10.1.0\oradata\mybase\mytemp.dbf' SIZE
521M REUSE AUTOEXTEND ON NEXT 512M MAXSIZE 2G
EXTENT MANAGEMENT local UNIFORM SIZE
256M;(自增长)
b.设置新的默认表空间
ALTER DATABASE DEFAULT TEMPORARY
TABLESPACE mytemp;
c.删除原来的临时表空间
DROP TABLESPACE temp INCLUDING
CONTENTS AND DATAFILES;
d.手动删除temp01.dbf文件(如果提示正在被使用,重启数据库就可以删除)
e.验证
SELECT * FROM DBA_TEMP_FILES;
思路2:直接对原来的临时表空间进行设置
a.ALTER DATABASE
TEMPFILE'D:\oracle\product\10.1.0\oradata\mybase\temp01.dbf' RESIZE
2G;
或者
ALTER
DATABASE TEMPFILE
'D:\oracle\product\10.1.0\oradata\mybase\temp01.dbf' AUTOEXTEND ON
NEXT 512M MAXSIZE 2G;
b.验证
SELECT * FROM DBA_TEMP_FILES;