DataGuard - ORA-00261错误及解决方法

错误|解决

在DataGuard环境中如果我们在做failover的时候,可能会碰到ORA-00261错误,下面是该错误的产生原因和解决方法。
如果是由于网络问题而导致需要切换,那么通常standby端的RFS进程并不会意识到primary已经不可访问,所以RFS进程也不会释放当前的standby redo log文件。
如果是primary端的数据库实例由于故障中断,那么一般情况下standby端的RFS进程会立刻意识到primary已经不可访问,也就会立刻释放当前的standby redo log文件。
只要RFS进程没有释放standby redo log文件,那么执行ALTER DATABASE RECOVER MANAGED STANDBY DATABASE FINISH命令就会在alertlog文件中发现如下的报错信息
Warning: log 4 of thread 1 is being archived or modified
Recovery interrupted.
Media Recovery failed with error 261
如果在报上述错误的时候,执行SWITCH,那么将会出现下面的错误:
ORA-16139: media recovery required

所以必须检查alertlog文件,直到发现如下信息才表示RFS进程已经释放了standby redo log文件,这时候才可以作FINISH:
RFS: Possible network disconnect with primary database

促使RFS进程释放standby redo log 文件有两种方法:
1. 等待RFS进程的network timeout,通常需要等待8分钟左右
2. 关闭standby数据库,再重新开启,这样会强制RFS进程释放standby redo log
我们可以通过v$managed_standby视图来监控RFS进程何时释放

实行Failover:
ALTER DATABASE RECOVER MANAGED STANDBY DATABASE FINISH;
alertlog中将显示如下信息,表示finish成功:
Terminal Incomplete Recovery: UNTIL CHANGE 3738452
Terminal Incomplete Recovery: End-Of-Redo log allocation
Terminal Incomplete Recovery: log 4 reserved for thread 1 seq# 8772
TERMINAL RECOVERY changing datafile format version from 8.0.0.0.0 to 9.0.0.0.0
Switching logfile format version from 8.0.0.0.0 to 9.0.0.0.0
Terminal Incomplete Recovery: clearing standby redo logs.
Terminal Incomplete Recovery: thread 1 seq# 8772 redo required
Terminal Incomplete Recovery: End-Of-Redo log /global/oradata/ctsdb/stdby_redo04.log
Identified end-of-REDO for thread 1 sequence 8772
Terminal Incomplete Recovery: end checkpoint SCN 3738453
Media Recovery Complete
Switching logfile format version from 9.0.0.0.0 to 8.0.0.0.0
Terminal Incomplete Recovery: successful completion
Begin: Wait for standby logfiles to be archived
Wed Sep  1 13:42:28 2004
ARC1: Evaluating archive   log 4 thread 1 sequence 8772
Wed Sep  1 13:42:28 2004
ARC0: Evaluating archive   log 4 thread 1 sequence 8772
Wed Sep  1 13:42:28 2004
ARC1: Beginning to archive log 4 thread 1 sequence 8772
Wed Sep  1 13:42:28 2004
ARC0: Unable to archive log 4 thread 1 sequence 8772
Wed Sep  1 13:42:28 2004
Creating archive destination LOG_ARCHIVE_DEST_1: '/global/oradata/ctsdb/archive/arch1_8772.log'
Wed Sep  1 13:42:28 2004
      Log actively being archived by another process
Wed Sep  1 13:42:28 2004
ARC1: Completed archiving  log 4 thread 1 sequence 8772
Wed Sep  1 13:42:43 2004
End: All standby logfiles have been archived
Resetting standby activation ID 4038461969 (0xf0b60a11)
Completed: ALTER DATABASE RECOVER MANAGED STANDBY DATABASE FINISH

FINSH成功之后再执行SWITCH:
ALTER DATABASE COMMIT TO SWITCHOVER TO PRIMARY;

SWITCH成功之后,重新启动数据库:
SHUTDOWN IMMEDIATE;
STARTUP;

时间: 2024-09-15 07:46:32

DataGuard - ORA-00261错误及解决方法的相关文章

Oracle中“无监听程序”和“协议适配器错误”的解决方法

一.发现问题 有些杀毒程序会清掉一些oracle注册表信息或删除oracle的bin目录下的一些.exe文件,导致数据库无法启动,下面来分析一下最常见的问题. 二.无监听程序 1.什么是监听器(LISTENER) 监听器是建立在服务端的,用于监听客户端向数据库服务器端提出的连接请求. 配置文件在\db_1\NETWORK\ADMIN\listener.ora. 2.本地服务名(Tnsname) 本地服务名是建立在客户端的,需要连哪些服务器数据库,就将该数据库服务端的信息配置. 配置文件在\db_

ORA-12154 和 TNS-03505 监听错误的解决方法

                                   ORA-12154 和 TNS-03505 监听错误的解决方法   今天在笔记本上本来想做个exp的测试的时候突然报错: ORA-03505:TNS: 无法解析指定的连接标识符   用tnsping 一下: C:\>tnsping wwl;   TNS Ping Utilityfor 64-bit Windows: Version 10.2.0.4.0 - Production on 21-APR-2012 18:27:52

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

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

Win8系统安装过程中提示Error Code:0x0000005D错误的解决方法

  win8系统虽然在慢慢退出市场,不过还是有不少的用户喜欢Win8系统的风格,而在Win7升级win8系统的过程中会出现一些问题,有位用户遇到错误提示Error Code:0x0000005D的问题,该如何解决此问题呢?下面小编研究整理安装Win8系统提示Error Code:0x0000005D错误的解决方法. 错误信息如下: Your PC needs to restart. Please hold down the power button Error Code:0x0000005D P

使用存储过程时一个错误的解决方法。

存储过程|错误|解决 这段时间用了一下C++ Builder ,在调用存储过程的时候遇到了一些问题,问了很多地方都没有找到答案,最后还是靠自己,现在拿出来和大家分享. 示例代码:    StoredProc1->Params->Clear();   StoredProc1->Params->CreateParam( ftSmallint, "@m1",   ptInput);   StoredProc1->Params->CreateParam( f

使用存储过程时一个错误的解决方法

存储过程|错误|解决 jackxm(原作) 这段时间用了一下C++ Builder ,在调用存储过程的时候遇到了一些问题,问了很多地方都没有找到答案,最后还是靠自己,现在拿出来和大家分享. 示例代码:    StoredProc1->Params->Clear();   StoredProc1->Params->CreateParam( ftSmallint, "@m1",   ptInput);   StoredProc1->Params->Cre

SQL SERVER 2005远程登陆18456错误的解决方法

一.SQL SERVER 2005 登陆18456错误的解决方法 很多朋友使用MSsql的时候本机能够正常登陆SQL2005的SQL Server Management Studio. 但是远程无法登陆1433,SQL Server 2005无法远程连接到1433.SQL(Microsoft SQL Server 2005 )登录不上去了,原来是出现了几个小问题,现在记录一下我的解决这几个情况的办法.(解决方法有很多种,这些只是我的解决方法,仅供参考) 错误提示: 标题: 连接到服务器 ----

解析使用存储过程时一个错误的解决方法

这段时间用了一下C++ Builder ,在调用存储过程时遇到了一些问题,问了很多人都没有找到答案,最后还是靠自己解决了问题,现在拿出来和大家分享. 示例代码: StoredProc1->Params->Clear();StoredProc1->Params->CreateParam( ftSmallint, "@m1", ptInput);StoredProc1->Params->CreateParam( ftString, "@m2&q

C#中ArrayList.CopyTo()运行错误的解决方法

在开始讲解C#中ArrayList.CopyTo()运行错误的解决方法之前,先给大家看一段代码: 以下是引用片段: ArrayList list = new ArrayList(); list.Add(1); list.Add(2); byte[] buf = new byte[2]; list.CopyTo(buf); 这段代码看上去,好正常,编译也很顺利通过,不过执行的时候出错了,为什么? 解剖ArrayList,其内部是用一个object 数组实现的,作为一切元素的容器,值类型必须转换成引

win8应用商店出现0x80073cf9错误的解决方法

本教程为大家介绍在使用windows 8应用商店时出现0x80073cf9错误的解决方法. 打开 Win8 应用商店,安装Win8应用的时候,如果出现 未安装此应用 – 查看详细信息,出现了问题,此应用无法安装.请再试一次.错误代码:0x80073cf9 解决方法很简单:在C:Windows 建立 auinstallagent 文件夹就可以解决了. 出现这种情况,可能是一些清理软件,清理空文件夹的时候,把 auinstallagent 文件夹也给消失了!