oracle10g升级到11g之后跨平台ADG遇到ORA-10561错误问题

Posted 久违的太阳

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了oracle10g升级到11g之后跨平台ADG遇到ORA-10561错误问题相关的知识,希望对你有一定的参考价值。

原来生产环境为windows oracle 10.2.0.5单实例,现在需要迁移到Linux RAC 11.2.0.4,由于数据量比较大,停机时间要很短,这里提供的方案是先将oracle10.2.0.5升级到11.2.0.4,然后再使用ADG的方式,将数据迁移到Linux RAC中

在数据库从10.2.0.5升级到11.2.0.4之后,搭建ADG环境,在duplicate之后,应用日志报错:

ORA-10562: Error occurred while applying redo to data block (file# 5, block# 1916873)
ORA-10564: tablespace TBS_HIS
ORA-01110: data file 5: '/oradata/TBS_HIS.DBF'
ORA-10561: block type 'TRANSACTION MANAGED INDEX BLOCK', data object# 70591
ORA-00600: internal error code, arguments: [6122], [0], [9520], [0], [], [], [], [], [], [], [], []
Fri Jun 24 00:32:48 2022
Recovery Slave PR0C previously exited with exception 10562
Fri Jun 24 00:32:48 2022
Errors with log /home/oracle/archivelog/1_106_1108156359.dbf
MRP0: Background Media Recovery terminated with error 448
Errors in file /u01/app/oracle/diag/rdbms/hisdg/hisdb/trace/hisdb_pr00_216461.trc:
ORA-00448: normal completion of background process
Managed Standby Recovery not using Real Time Apply
Fri Jun 24 00:32:49 2022
Slave exiting with ORA-10562 exception
Errors in file /u01/app/oracle/diag/rdbms/hisdg/hisdb/trace/hisdb_pr02_216465.trc:
ORA-10562: Error occurred while applying redo to data block (file# 3, block# 36243)
ORA-10564: tablespace SYSAUX
ORA-01110: data file 3: '/oradata/SYSAUX01.DBF'
ORA-10561: block type 'TRANSACTION MANAGED INDEX BLOCK', data object# 8858
ORA-00600: internal error code, arguments: [6122], [0], [46852], [0], [], [], [], [], [], [], [], []
Fri Jun 24 00:32:50 2022
Slave exiting with ORA-10562 exception
Errors in file /u01/app/oracle/diag/rdbms/hisdg/hisdb/trace/hisdb_pr06_216473.trc:
ORA-10562: Error occurred while applying redo to data block (file# 3, block# 30637)


 

这个错误其实以前遇到过不少次,意思就是REDO日志和数据文件格式不一致,一般是出现了redo坏块.以前还有一种情况,就是ORACLE 10G如果将数据文件从windows恢复到linux也会报这种错,因为10g的数据库是不支持异构recover的.

但是我的数据库已经升级到11.2.0.4了啊?难道因为这个库是从10g升级上来的就不支持异构了?

这里我们想到,数据文件我duplicate了两次都出现报错,应该不会是数据文件有坏块.那应该就是redo的问题了,尝试重建redo日志还是没有用.

突然我想到,会不会是因为升级之后redo日志的格式还是老的10.2.0.5格式,导致在11.2.0.4数据库下无法应用?

这里我想到了一个数据库版本参数,我们来检查一下主库和备库的参数值,主库:

备库:

果然不一致,这个compatible表示数据库兼容版本,主库为10.2.0.5那么数据库的日志为了兼容10.2.0.5应该就是10.2.0.5的格式,而10.2.0.5是不支持异构的,所以就无法在11.2.0.4 Linux上进行日志应用.

那了解了原因,修改起来就简单了.主库修改这个参数为11.2.0.4.0之后,重启数据库生效即可.

再重新duplicate,确认实时应用恢复.

以上是关于oracle10g升级到11g之后跨平台ADG遇到ORA-10561错误问题的主要内容,如果未能解决你的问题,请参考以下文章

安装oracle10g 和oralce11g之后,plsql连接正常。有一个软件需要连接oracle,提示报错ORA-01804: 时区信息

oracle 10g和11g客户端可以共存吗

oracle 10g和11g客户端可以共存吗

oracle 10g,11g,是啥意思????是否它的大小??有10或11G那么大?

Oracle 10g,和 Oracle 11g 能互相兼容吗?还是向下兼容?

oracle 10g或11g的客户端下载地址