解决Oracle Temp01.dbf不断变大的问题


1、首先查看当前的数据库默认表空间:

SQL>select * from database_properties where property_name='DEFAULT_TEMP_TABLESPACE';

确认当前的临时表空间为TEMP

2、查看目前临时表空间的大小:

SQL>select file_name,tablespace_name,bytes/1024/1024 "MB",autoextensible from dba_temp_files;

3、创建新的临时表空间:(先在其他的磁盘空间借用一下空间)

SQL> create temporary tablespace temp02 tempfile '/home/oracle/temp02.dbf' size 1024M;

4、把新建的临时表空间却换成数据库的默认临时表空间

SQL> alter database default temporary tablespace temp02;

5、确认目前数据库的默认临时表空间

SQL>select * from database_properties where property_name='DEFAULT_TEMP_TABLESPACE';

确认temp02为当前的数据库默认表空间

6、删除temp临时表空间

SQL> drop tablespace temp including contents and datafiles;

7、现在temp02临时表空间占据了别人的磁盘空间,需要重新把临时表空间建立在原来的位置,重新建立temp临时表空间

SQL>create temporary tablespace temp tempfile '/home/oracle/temp01.dbf' size 8192M autoextend on maxsize 15G;

查看新建的temp临时表空间是否正确:

SQL>select file_name,tablespace_name,bytes/1024/1024,maxbytes/1024/1024,autoextensible from dba_temp_files;

8、把新建的temp临时表空间却换成数据库的默认临时表空间

SQL> alter database default temporary tablespace temp;

9、确认目前数据库的默认临时表空间

SQL>select * from database_properties where property_name='DEFAULT_TEMP_TABLESPACE';

确认temp为当前的数据库默认表空间

10、目前把原来的temp临时表空间变成了512M,把剩余的磁盘空间空了出来,temp02临时表空间就没有用了,删除temp02临时表空间

SQL> drop tablespace temp02 including contents and datafiles;