查询临时表空间的状态:
SQL> select f.file#,t.ts#,f.name,t.name from v$tempfile f,v$tablespace t where f.ts#=t.ts#; FILE# TS# NAME NAME---------- ---------- -------------------------------------------------------------------------------- ------------------------------ 1 3 /opt/oracle/app/oracle/oradata/zydev/temp01.dbf TEMP
删除对应的临时表数据文件
SQL> !rm -rf /opt/oracle/app/oracle/oradata/zydev/temp01.dbf
恢复的两种情况:
1.重启数据库,临时表空间将自动建立生成
SQL> shutdown immediate数据库已经关闭。已经卸载数据库。ORACLE 例程已经关闭。SQL> startupORACLE 例程已经启动。Total System Global Area 776646656 bytesFixed Size 2217384 bytesVariable Size 574622296 bytesDatabase Buffers 192937984 bytesRedo Buffers 6868992 bytes数据库装载完毕。数据库已经打开。
查看日志文件可以看见:
Re-creating tempfile /opt/oracle/app/oracle/oradata/zydev/temp01.dbf
2.数据库开启的状态下恢复
SQL> !rm -rf /opt/oracle/app/oracle/oradata/zydev/temp01.dbfSQL> alter tablespace temp add tempfile 2 '/opt/oracle/app/oracle/oradata/zydev/temp02.dbf' 3 size 30M;表空间已更改。SQL> alter tablespace temp drop tempfile 2 '/opt/oracle/app/oracle/oradata/zydev/temp01.dbf';表空间已更改。SQL> select f.file#,t.ts#,f.name,t.name from v$tempfile f,v$tablespace t where f.ts#=t.ts#; FILE# TS# NAME NAME---------- ---------- -------------------------------------------------------------------------------- ------------------------------ 2 3 /opt/oracle/app/oracle/oradata/zydev/temp02.dbf TEMP