使用RESIZE方法解决临时表空间(TEMP)过大问题
SQL> select * from v$version where rownum<2;
BANNER
--------------------------------------------------------------------------------
Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Prod
--1.查看临时表空间及大小
SQL> col FILE_NAME for a40
SQL> col TABLESPACE_NAME for a10
SQL> select tablespace_name,file_name,bytes/1024/1204 m from dba_temp_files;
TABLESPACE FILE_NAME M
---------- ---------------------------------------- ----------
TEMP +DATA/racdb/tempfile/temp.263.771474633 25.5149502
--2.resize临时表空间文件
SQL> alter database tempfile '+DATA/racdb/tempfile/temp.263.771474633' resize 10m;
数据库已更改。
--3.确认文件修改成功
SQL> select tablespace_name,file_name,bytes/1024/1204 m from dba_temp_files;
TABLESPACE FILE_NAME M
---------- ---------------------------------------- ----------
TEMP +DATA/racdb/tempfile/temp.263.771474633 8.50498339
--4.查看系统文件大小,已经修改成功
+ASM1@rac1 /home/oracle$ export ORACLE_SID=+ASM1
+ASM1@rac1 /home/oracle$ asmcmd
ASMCMD> ls -ls +DATA/racdb/tempfile/temp.263.771474633
Type Redund Striped Time Sys Block_Size Blocks Bytes Space Name
TEMPFILE UNPROT COARSE SEP 12 22:00:00 Y 8192 1281 10493952 11534336 temp.263.771474633
如果要增大临时表空间文件的大小,也可以使用该命令:
alter database tempfile '+DATA/racdb/tempfile/temp.263.771474633' resize 50m;