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

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

问题解决!

总结

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

(0)

相关推荐

  • 数据库ORA-01196故障-归档日志丢失恢复详解

    问题: 由于机房停电,其中一DG备库无法open,启动时报错 启动数据库时报下面的错误 SQL> alter database open; alter database open * 第 1 行出现错误: ORA-10458: standby database requiresrecovery ORA-01196: 文件 1 由于介质恢复会话失败而不一致 ORA-01110: 数据文件 1:'+DATA/htdb7/datafile/system.313.884996245' 查看归档日志应用情

  • oracle数据库ORA-01196错误解决办法分享

    上一篇文章中我们了解到oracle常见故障类别及规划解析,接下来,我们看看oracle数据库ORA-01196错误解决的相关内容,具体如下: 问题现象 在使用shutdown abort停DataGuard备库后,备库不能open,报ORA-01196错误. 发现一备库不能应用日志,查看备库日志没发现报错,怀疑是备库应用日志服务停止,于是尝试重启备库: 可能因为备库是读业务比较繁忙,在shutdown immediate关闭备库时等时间过长,于是使用了shutdown abort命令: 但后面在

  • 使用sql server management studio 2008 无法查看数据库,提示 无法为该请求检索数据 错误916解决方法

    今日使用时代互联的海外空间,sql 2008 无限空间大小,开通账户后,使用sql server management studio 2008 连接数据库,可以链接上,但是无法查看自己的数据库,点击数据库后,提示 无法为该请求检索数据 错误916 解决方法如下 1:点击左侧的数据库,然后到右侧的 "名称"  上面点击右键   出来如图所示的菜单,取消掉策略运行状态和排序规则,再次点击数据库的时候,就能显示所有的数据库以及你自己的数据库了.

  • 卸载VS2011 Developer Preview后Sql Server2008 R2建立数据库关系图报“找不到指定的模块”错误的解决方法

    可怜我的C盘本来只有8.XG,所以不得不卸载掉它. 卸载掉本身没啥问题,只是昨晚突然发现 Sql Server 2008 R2 Management Studio 突然不能新建数据库关系图了,一建立就会报"找不到指定的模块(MS Visual Database Tools)"的错误: 为了这个错误我甚至认真评估了重新配置数据库的可能性.无奈这个R2的SQL2008打过SP1了,无论是修复还是重装都是很花时间的事情,所以不甘心,在Google上找了一圈.终于找到个类似的主题反应了这个问题

  • 解决SQL2005备份数据库.dat或bak还原时的结构错误的解决方法

    远程服务器主机上安装了sql server 2005,备份的时候使用虚拟主机自带的还原工具备份数据库为data.dat格式的,在本机sql2000想还原数据库的时候,出现提示"已备份数据库的磁盘上结构版本为611. 服务器支持版本539, 无法还原或升级此数据库,RESTORE DATABASE 操作异常终止." 这是由于sql数据库高版本2005向下兼容,但低版本的sql2000不能处理sql2005的数据库格式造成的.客户端必须使用sql2005才能正确还原已经备份的数据库文件.这

  • Oracle数据库中ora-12899错误的解决方法

    在使用ORACLE的过程中,会出现各种各样的问题,各种各样的错误,其中ORA-12899就是前段时间我在将数据导入到我本地机器上的时候一直出现的问题.不过还好已经解决了这个问题,现在分享一下,解决方案; 出现ORA-12899,是字符集引起的,中文在UTF-8中占3个字节,ZHS16GBK中占2个字节,而源dmp文件字符集是ZHS16GBK库里倒出来的数据,现在要导入到目标字符集为UTF-8的库里,所以会出现ORA-12899 其实只要修改一下ORACLE 的字符集就可以很好的解决这个问题; 但

  • Oracle数据库TNS常见错误的解决方法汇总

    TNS是Oracle Net的一部分,是专门用来管理和配置Oracle数据库和客户端连接的一个工具,在大多数情况下客户端和数据库要通讯,就必须配置TNS.本文主要讲述了Oracle数据库TNS常见错误的解决方法如下: 1.ORA-12541:TNS:没有监听器 原因:没有启动监听器或者监听器损坏.若是前者,使用命令net start OracleOraHome10gTNSListener(名字可能有出入)即可;如果是后者,则使用"Net Configuration Assistant"

  • PHP正则替换函数preg_replace()报错:Notice Use of undefined constant的解决方法分析

    本文实例讲述了PHP正则替换函数preg_replace()报错:Notice Use of undefined constant的解决方法.分享给大家供大家参考,具体如下: 环境错误级别:error_reporting =E_ALL 某天我在研究一下php下的正则替换函数perg_replace(), 示例: 代码: $subject="2222<b>a</b>2222fff222222222A22222"; $pattern = "/(a)/e&q

  • Mysql报Table 'mysql.user' doesn't exist问题的解决方法

    目录 发现问题 问题起源: 排查记录: 总结 发现问题 前天突然出现了这个问题,花费了很多时间去解决问题.记录一下,希望能给大家避坑 问题起源: 周六,windows本地的mysql还能正常使用,周日早上,使用navicat连接本地mysql,一直报连接拒绝. 排查记录: 1 首先博主,去查看了一下本地Mysql服务是否启动,经过查看发现Mysql服务关闭,且无法启动. 2 因需要先确定Mysql服务无法启动的原因, 所以,去查看了一下系统的日志. 3 确定了问题,是因为Mysql自身报错,信息

  • Navicat连接mysql报错1251错误的解决方法

    本文为大家分享了Navicat连接mysql报错1251错误的解决方法,供大家参考 错误提示 出现这个原因是mysql8 之前的版本中加密规则是mysql_native_password,而在mysql8之后,加密规则是caching_sha2_password 解决办法:把mysql用户登录密码加密规则还原成mysql_native_password. 步骤: 1.打开cmd命令窗口,输入命令 mysql -uroot -p 打开MySQL数据库,然后输入密码进行登录. 2.修改加密规则 将加

  • 在Ubuntu 16.10安装mysql workbench报未安装软件包 libpng12-0错误的解决方法

    1.安装mysql workbench,提示未安装软件包 libpng12-0 下载了MySQL Workbench 6.3.8 在安装的时候报错: sudo dpkg -i mysql-workbench-community-6.3.8-1ubu1604-amd64.deb 提示:未安装软件包 libpng12-0. 然而使用sudo apt-get -f install后还是报错,后来找到下载libpng12-0的地址并安装. 2.下载安装libpng12-0 下载libpng12-0地址:

  • Mysql 报Row size too large 65535 的原因及解决方法

    报错信息:Row size too large. The maximum row size for the used table type, not counting BLOBs, is 65535 向mysql的表插件一个字段 类型为text时,或修改一个字段类型为text时,报出上面的错误.其实我对这个错误的原因理解也不是很深,给出一些我查到的解释吧 大意是数据表中有一个设定长度为64K的字段索引,当表中字段(不知道是字段名字还是什么)不能超过这个长度,65,535所说明的是针对的是整个表的

随机推荐