oracle 11g dataguard ORA-10458问题求助
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了oracle 11g dataguard ORA-10458问题求助相关的知识,希望对你有一定的参考价值。
参考技术A [oracle@dg2 dbs] $ sqlplus / as sysdbaSQL> startup pfile='/u01/app/oracle/product/11.2.0/db_1/dbs/initdb1.ora'
ORA-10458: standby database requires recovery
ORA-01194: 文件 1 需要更多的恢复来保持一致性
ORA-01110: 数据文件 1: '/u01/app/oracle/oradata/db1/system01.dbf'
2 原因分析
在pfile中有个参数
*.control_files='/u01/app/oracle/oradata/db1/control01.ctl','/u01/app/oracle/oradata/db1/control02.ctl'
这里有两个控制文件,但实际上创建的时候多建了一个control03.ctl。控制文件要与*.control_files参数规定的一致才可以。
另外,传控制文件给备库时要处于宕机状态。
3 解决方案
删除/u01/app/oracle/oradata/db1/control03.ctl文件本回答被提问者采纳 参考技术B [oracle@dg2 dbs] $ sqlplus / as sysdba
SQL> startup pfile='/u01/app/oracle/product/11.2.0/db_1/dbs/initdb1.ora'
ORA-10458: standby database requires recovery
ORA-01194: 文件 1 需要更多的恢复来保持一致性
ORA-01110: 数据文件 1: '/u01/app/oracle/oradata/db1/system01.dbf'
2 原因分析
在pfile中有个参数
*.control_files='/u01/app/oracle/oradata/db1/control01.ctl','/u01/app/oracle/oradata/db1/control02.ctl'
这里有两个控制文件,但实际上创建的时候多建了一个control03.ctl。控制文件要与*.control_files参数规定的一致才可以。
另外,传控制文件给备库时要处于宕机状态。
3 解决方案
删除/u01/app/oracle/oradata/db1/control03.ctl文件 参考技术C Oracle DBA神器:PRM-DUL灾难恢复工具可以直接从这种受损的Oracle数据库中将数据拯救出来。
当你的数据库因为ORA-00600/ORA-07445或其他ORA-报错,或丢失关键的system表空间数据文件,或ASM diskgroup损坏时均可以考虑采用PRM-DUL来做恢复。PRM-DUL采用独创的DataBridge恢复技术,直接从数据文件中抽取数据后可以像DBLINK那样直接插入到新建数据库中,而无需数据落地成为DMP文件占用空间。 参考技术D 可能是设置的不一样导致归档导致的
原创oracle ORA-01157 ORA-01110 DataGuard 备库 临时表空间报错
简要: 当查询数据库数据时,提示临时表空间异常,报错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磁盘组中
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,file_name,bytes/1024/1024 MB,status,tablespace_name from dba_temp_files where file_name like ‘%blsp_temp%‘;
select file_id,file_name,bytes/1024/1024 MB,status,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,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
---------- ------------------------------------------------------- ---------- ------- ------------------------------
27 +DG_DDATA_02/racdbdg/datafile/blsp_temp02.dbf 10240 ONLINE BLSP_TEMP
SQL>
6.5. 再新添加回来原来报错的数据文件名字
SQL> alter tablespace BLSP_TEMP add tempfile ‘+DG_DDATA_02/racdbdg/datafile/blsp_temp.dbf‘ size 10240M;
Tablespace altered.
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_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,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_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 ;
以上是关于oracle 11g dataguard ORA-10458问题求助的主要内容,如果未能解决你的问题,请参考以下文章
dataguard宕机重启后,MRP进程起不来,报ORA-01111(10g)或者ORA-01274(11g)错