当前位置:首页 >> 数据库

数据库报:ORA-01196(ORA-10458/ORA-01110)错误的解决方法

发现问题

赞比亚的一个项目,主要做主从数据库同步,主库在赞比亚机房,从库在中国青岛阿里云服务器上面,通过Dataguard实现,当运行一段时间后,发现主从数据库的数据不一致了,从库无法启动,报“ORA-01196: 文件 1 由于介质恢复会话失败而不一致”这个错误,具体日志信息如下:

===========《《日志信息》》====================

Windows PowerShell

版权所有 (C) 2009 Microsoft Corporation。保留所有权利。

PS C:\Users\Administrator> sqlplus  / as sysdba

SQL*Plus: Release 11.2.0.3.0 Production on 星期三 5月 7 04:59:10 2014

Copyright (c) 1982, 2011, Oracle.  All rights reserved.

连接到:

Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production

With the Partitioning, OLAP, Data Mining and Real Application Testing options

SQL> select OPen_mode from v$database;

OPEN_MODE

----------------------------------------

MOUNTED

SQL> alter database open;

alter database open

*

第 1 行出现错误:

ORA-10458: standby database requires recovery

ORA-01196: 文件 1 由于介质恢复会话失败而不一致

ORA-01110: 数据文件 1: 'D:\APP\ADMINISTRATOR\ORADATA\ORCL\SYSTEM01.DBF'

==============《《《日志结束》》》===========================

解决方法:

从库启动到mount状态:

SQL>SHUTDOWN IMMEDIATE
SQL>STARTUP MOUNT;
SQL>ALTER DATABASE RECOVER MANAGED STANDBY DATABASE USEING CURRENT LOGFILE DISCONNECT FROM SESSION;

到主库上操作:

SQL>ALTER SYSTEM SWITCH LOGFILE;

多操作几次,操作之后,稍等一段时间,时间视网速而定,过一段时间后,在主库上查询一下规定情况:

SQL>SELECT NAME,SEQUENCE#,ARCHIVED,APPLIED FROMV$ARCHIVED_LOG ORDER BY SEQUENCE#;

如果返回结果"APPLIED"都是“YES”或者只有最后一个是“NO”的话,说明全部归档日志全部已经归档完了,此时到备库上上操作:

 备库操作:

SQL>ALTER DATABASE RECOVER MANAGED STANDBY DATABASE CANCLE;
 SQL>ALTER DATABASE OPEN;
 SQL>ALTER DATABASE RECOVER MANAGED STANDBY DATABASE USING CURRENT LOGFILE DISCONNECT FROM SESSION;

================================解决方法======================================== 

问题解决!

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对的支持。