如果自己搞不定可以找诗檀软件专业ORACLE数据库修复团队成员帮您恢复!

诗檀软件专业数据库修复团队

服务热线 : 13764045638 QQ号:47079569 邮箱:service@parnassusdata.com

  适用于: Oracle Server - Enterprise Edition – 版本 11.2.0.2 及以上   [Release: 11.2 及以上 ] 本文信息适用于任何平台。 症状 在使用标准DDL drop一个临时文件后,文件在DBA_TEMP_FILES和V $ TEMPFILE视图中仍可见且物理保留在文件系统上,例如 SQL> select * from dba_temp_files order by tablespace_name; FILE_NAME -------------------------------------------------------------------------------- FILE_ID TABLESPACE_NAME                     BYTES     BLOCKS STATUS ---------- ------------------------------ ---------- ---------- ------- RELATIVE_FNO AUT   MAXBYTES MAXBLOCKS  INCREMENT_BY USER_BYTES USER_BLOCKS ------------ --- ---------- ---------- ------------ ---------- ----------- /u09citcw/oradata/CWCIT0/temp_f04.dbf 6 TEMP                                                 OFFLINE SQL> select * from v$tempfile; FILE# CREATION_CHANGE# CREATION_        TS#     RFILE# STATUS  ENABLED ---------- ---------------- --------- ---------- ---------- ------- ---------- BYTES     BLOCKS CREATE_BYTES BLOCK_SIZE ---------- ---------- ------------ ---------- NAME -------------------------------------------------------------------------------- 6      32937457307 12/30/2011         3          4 OFFLINE READ WRITE 0          0   8589934592       8192 /u09citcw/oradata/CWCIT0/temp_f04.dbf 注意事项: 1. 尝试drop临时文件的会话收到一个ORA-25152 错误: SQL> alter database tempfile '/u09citcw/oradata/CWCIT0/temp_f04.dbf' drop; alter database tempfile '/u09citcw/oradata/CWCIT0/temp_f04.dbf' drop * ERROR at line 1: ORA-25152: TEMPFILE cannot be dropped at this time
  1. 对于此时仍使用临时文件的会话,一个查询失败显示:
... ERROR: ORA-01135: file 201 accessed for DML/query is offline ORA-01110: data file 201: '/u09citcw/oradata/CWCIT0/temp_f04.dbf'   原因 这种情况是由使用了被drop的临时文件中信息的会话会引起的。 临时文件的drop在下面2个步骤完成:
  1. 临时文件被脱机,所以没有新的会话能访问它。
  2. 如果没有会话在访问临时文件中的排序信息,则它被drop了。如果有,则它未被drop,直到使用退出/kill的临时文件或会话来完成这些会话。
这也被记录在 Bug 5890956 - DROPPING TEMPFILE RETURNS ERROR BUT ALREADY RUNNING QUERY ABORTS WITH ORA-01135 这被关闭显示状态'Not a Bug' 解决方案 杀/断开正在使用临时文件中排序数据的会话后再次重新运行DROP语句。 万一失败的查询需要重复,你可以在重新设置临时文件联机后操作。 参考 BUG:5890956 - DROPPING TEMPFILE RETURNS ERROR BUT ALREADY RUNNING QUERY ABORTS WITH ORA-01135 NOTE:289894.1 - Queries To Monitor Temporary Tablespace Usage