数据库报:ORA-01196(ORA-10458/ORA-01110)错误的解决方法
作者:lucky-laoA
发现问题
赞比亚的一个项目,主要做主从数据库同步,主库在赞比亚机房,从库在中国青岛阿里云服务器上面,通过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;
================================解决方法========================================
问题解决!
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对脚本之家的支持。