数据库报: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;

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

    问题解决!

    总结

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