问题描述
业务人员在为表建索引时报错:
- 查看告警日志:
Errors in file /u01/app/oracle/diag/rdbms/racdb/racdb/trace/racdb_j003_7389.trc:
ORA-12012: 自动执行作业 "EGRANT_ISIS"."监控情况统计" 出错
ORA-01157: 无法标识/锁定数据文件 202 - 请参阅 DBWR 跟踪文件
ORA-01110: 数据文件 202: '+RACDB_DATA/racdb/tempfile/temp01.dbf'
ORA-06512: 在 "EGRANT_ISIS.FSP_WORK_PLATFORM_MONITOR_PROC", line 14
问题解决
SQL> select tablespace_name, file_name from dba_temp_files;
ERROR:
ORA-01157: 无法标识/锁定数据文件 202 - 请参阅 DBWR 跟踪文件 ORA-01110:
数据文件 202: '+RACDB_DATA/racdb/tempfile/temp01.dbf'
原因是这个库是一个RAC数据库恢复过来的,没有临时文件,只有临时表空间,这个数据库找不到+RACDB_DATA/racdb/tempfile/temp01.dbf
这个文件,需要将它offline drop,但是offline drop时报错说没有这个文件,所以尝试直接drop
SQL> alter database tempfile '+RACDB_DATA/racdb/tempfile/temp01.dbf' drop;
数据库已更改。
- 查看临时文件
SQL> select file_name,file_id,tablespace_name from dba_data_files where tablespace_name='TEMP';
未选定行
SQL> create tablespace temp datafile '/u01/app/oracle/oradata/racdb/datafile/temp01.dbf' size 500M autoextend on;
create tablespace temp datafile '/u01/app/oracle/oradata/racdb/datafile/temp01.dbf' size 500M autoextend on
*
第 1 行出现错误:
ORA-01543: 表空间 'TEMP' 已存在
添加一个temp数据文件
SQL> alter tablespace temp add tempfile '/u01/app/oracle/oradata/racdb/datafile/temp02.dbf' size 500M autoextend on;
表空间已更改。
参考:
解决Oracle ORA-1157 ORA-01157: 无法标识/锁定数据文件 - 请参阅 DBWR 跟踪文件
ORA-01157: 无法标识/锁定数据文件