简要: 当查询数据库数据时,提示临时表空间异常,报错ORA-01157 ORA-01110,经过对数据文件处理后,已经解决此故障。
?
环境:Oracle 11g RAC For Linux 6,该库为DataGuard备库
?
1. 特定用户查询数据时报错,如下:
ERROR: ORA-01157: cannot identify/lock data file 226 - see DBWR trace file ORA-01110: data file 226: ‘+DG_DATA02/racdb/blsp_temp.dbf‘
在备库中其它用户查询数据时正常,其它的临时表空间状态也正常。
?
2. 检查DataGuard转换参数
SQL> show parameter db_file_name_convert
NAME???????????????????????????????? TYPE??????? VALUE ------------------------------------ ----------- ------------------------------ db_file_name_convert???????????????? string???? ?
-- 输出信息已调整显示格式
+DG_SYSTEM/racdb/datafile,+DG_SYSTEM/racdbdg/datafile, +DG_SYSTEM/racdb,????????? +DG_SYSTEM/racdbdg, +DG_DATA01/racdb/datafile,+DG_DDATA_01/racdbdg/datafile, +DG_DATA02/racdb/datafile,+DG_DDATA_02/racdbdg/datafile, +DG_SYSTEM/racdb/tempfile,+DG_SYSTEM/racdbdg/tempfile, +DG_DATA01/racdb/tempfile,+DG_DDATA_01/racdbdg/tempfile, +DG_DATA02/racdb/tempfile,+DG_DDATA_02/racdbdg/tempfile
发现转换参数格式是正确的,但是没有设置临时数据文件所在路径
?
3. 再查询ASM磁盘组中,也确实没有报错的这个临时数据文件
?
4. 解决方法:
?? a. 调整数据库参数
?? b. 将数据文件重新创建到ASM磁盘组中t
?
5. 调整转换参数,在主、备库中增加临时表空间的转换路径,备库中的路径设置与主库相反,该参数为静态参数,需要重启数据库,数据库为生产库,暂时不修改,以后再修改。
提供修改示例如下:
主库:
。。。
‘+DG_DATA02/racdb/‘,‘+DG_DATA02/racdbdg/‘
。。。
备库:
。。。
‘+DG_DATA02/racdbdg/‘,‘+DG_DATA02/racdb/‘
。。。
?
6. 调整数据文件路径
6.1. 查询主库中的数据文件信息,完整路径和文件大小
SQL> select file_id,file_name,bytes/1024/1024 MB,status,tablespace_name from dba_temp_files where file_name like ‘%blsp_temp%‘;
?? FILE_ID FILE_NAME?????????????????????????????? MB STATUS? TABLESPACE_NAME ---------- ------------------------------- ---------- ------- ----------------- ??????? 26 +DG_DATA02/racdb/blsp_temp.dbf??????? 10240 ONLINE? BLSP_TEMP
SQL>
?
6.2. 取消备库日志应用,修改文件管理方式为手动管理
alter database recover managed standby database cancel; alter system set standby_file_management=MANUAL SID=‘*‘;
?
6.3. 将数据文件RENAME到备库的ASM磁盘路径中,不成功,报错如下:
SQL> alter database rename file ‘+DG_DATA02/racdb/blsp_temp.dbf‘ to ‘+DG_DDATA_02/racdbdg/datafile/blsp_temp.dbf‘; alter database rename file ‘+DG_DATA02/racdb/blsp_temp.dbf‘ to ‘+DG_DDATA_02/racdbdg/datafile/blsp_temp.dbf‘ * ERROR at line 1: ORA-01511: error in renaming log/data files ORA-01141: error renaming data file 226 - new file ‘+DG_DDATA_02/racdbdg/datafile/blsp_temp.dbf‘ not found ORA-01110: data file 226: ‘+DG_DATA02/racdb/blsp_temp.dbf‘ ORA-17503: ksfdopn:2 Failed to open file +DG_DDATA_02/racdbdg/datafile/blsp_temp.dbf ORA-15173: entry ‘blsp_temp.dbf‘ does not exist in directory ‘datafile‘
SQL>
?
6.4. 在临时表空间里面新添加一个数据文件,成功
SQL> alter tablespace BLSP_TEMP add tempfile ‘+DG_DDATA_02/racdbdg/datafile/blsp_temp02.dbf‘ size 10240M;
Tablespace altered.
SQL>
查询临时表空间,还是报错
SQL>? select file_id,tablespace_name from dba_temp_files where file_name like ‘%blsp_temp%‘; ?select file_id,tablespace_name from dba_temp_files where file_name like ‘%blsp_temp%‘ ???????????????????????????????????????????????????????????????????????? * ERROR at line 1: ORA-01157: cannot identify/lock data file 226 - see DBWR trace file ORA-01110: data file 226: ‘+DG_DATA02/racdb/blsp_temp.dbf‘
SQL>
?
这时候,再去删除报错的数据文件,成功
SQL> alter tablespace BLSP_TEMP drop tempfile ‘+DG_DATA02/racdb/blsp_temp.dbf‘;
Tablespace altered.
SQL>
?
查询表空间信息,正常
SQL> select file_id,tablespace_name from dba_temp_files where file_name like ‘%blsp_temp%‘;
?? FILE_ID FILE_NAME?????????????????????????????????????????????????????? MB STATUS? TABLESPACE_NAME ---------- ------------------------------------------------------- ---------- ------- ------------------------------ ??????? 27 +DG_DDATA_02/racdbdg/datafile/blsp_temp02.dbf???????????????? 10240 ONLINE? BLSP_TEMP
SQL>
?
6.5. 再新添加回原来报错的数据文件名字(blsp_temp.dbf),要注意保持与主库中相同的大小(10240M)
SQL> alter tablespace BLSP_TEMP add tempfile ‘+DG_DDATA_02/racdbdg/datafile/blsp_temp.dbf‘ size 10240M;
Tablespace altered.
SQL>? select file_id,tablespace_name from dba_temp_files where file_name like ‘%blsp_temp%‘;
?? FILE_ID FILE_NAME?????????????????????????????????????????????????????? MB STATUS? TABLESPACE_NAME ---------- ------------------------------------------------------- ---------- ------- ------------------------------ ??????? 26 +DG_DDATA_02/racdbdg/datafile/blsp_temp.dbf?????????????????? 10240 ONLINE? BLSP_TEMP ??????? 27 +DG_DDATA_02/racdbdg/datafile/blsp_temp02.dbf???????????????? 10240 ONLINE? BLSP_TEMP
SQL>
?
6.6. 删除新添加的数据文件(blsp_temp02.dbf)
SQL> alter tablespace BLSP_TEMP drop tempfile ‘+DG_DDATA_02/racdbdg/datafile/blsp_temp02.dbf‘;
Tablespace altered.
SQL> SQL> select file_id,tablespace_name from dba_temp_files where file_name like ‘%blsp_temp%‘;
?? FILE_ID FILE_NAME?????????????????????????????????????????????????????? MB STATUS? TABLESPACE_NAME ---------- ------------------------------------------------------- ---------- ------- ------------------------------ ??????? 26 +DG_DDATA_02/racdbdg/datafile/blsp_temp.dbf?????????????????? 10240 ONLINE? BLSP_TEMP
SQL>
?
6.7. 设置文件管理方式为自动,并启用日志应用
alter system set standby_file_management=AUTO SID=‘*‘;
alter database recover managed standby database using current logfile disconnect ;
?
6.8. 检查备库日志应用情况
SQL> select open_mode from v$database; OPEN_MODE--------------------READ ONLY WITH APPLYSQL>
(编辑:李大同)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|