如果自己搞不定可以找诗檀软件专业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
-
对于此时仍使用临时文件的会话,一个查询失败显示:
…
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个步骤完成:
- 临时文件被脱机,所以没有新的会话能访问它。
- 如果没有会话在访问临时文件中的排序信息,则它被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
Comment