以下命令均在Standby端执行

1.如果是使用ARCH传递redo数据,那么执行以下命令:

检查是否有gap archive

SELECT THREAD#, LOW_SEQUENCE#, HIGH_SEQUENCE# FROM V$ARCHIVE_GAP;

如果有则register

ALTER DATABASE REGISTER PHYSICAL LOGFILE 'filespec1';

实行Failover:

ALTER DATABASE RECOVER MANAGED STANDBY DATABASE CANCEL;

ALTER DATABASE ACTIVATE STANDBY DATABASE;

ALTER DATABASE MOUNT;

ALTER DATABASE OPEN;

2.如果是使用LGWR传递redo数据,那么执行以下命令:

检查是否有gap archive

SELECT THREAD#, LOW_SEQUENCE#, HIGH_SEQUENCE# FROM V$ARCHIVE_GAP;

如果有则register

ALTER DATABASE REGISTER PHYSICAL LOGFILE 'filespec1';

如果是由于网络问题而导致需要切换,那么通常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;

使用Data Guard Broker

创建Management Server repository:

emca

启动Management Server:

oemctl start oms

检查Management Server状态:

oemctl status oms sysman/oem_temp@bftest

启动Intelligent Agent:

agentctl start agent

如果启动agent报错,则检查相应的log文件,如果log文件中有如下错误:

Failed while initializing user subsystem

Error initializing subsystems

nmiumini_initializeUM: Unable to initialize UQAgent

则进行如下操作之后,重新启动agent:

rm $ORACLE_HOME/network/agent/*.q

alter system set resource_manager_plan='SYSTEM_PLAN' scope=both;

在所有站点上将BROKER启动。

SQL> ALTER SYSTEM SET DG_BROKER_START=TRUE SCOPE=BOTH;

System altered.

SQL> SHOW PARAMETER DG_BROKER_START

NAME TYPE VALUE

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

dg_broker_start boolean TRUE

连接Data Guard Manager,必须使用具有sysdba权限的用户连接到Primary库上

>dgmgrl

DGMGRL> connect sys/dba

创建配置方案

DGMGRL> CREATE CONFIGURATION 'cts' AS

PRIMARY SITE IS 'bftest'

RESOURCE IS 'ctsdb'

HOSTNAME IS 'bftest'

INSTANCE NAME IS 'ctsdb'

SERVICE NAME IS 'ctsdb.primary'

SITE IS MAINTAINED AS PHYSICAL;

创建备用站点方案

DGMGRL> CREATE SITE 'report'

RESOURCE IS 'ctsdb'

HOSTNAME IS 'report'

INSTANCE NAME IS 'ctsdb'

SERVICE NAME IS 'ctsdb.standby'

SITE IS MAINTAINED AS PHYSICAL;

激活配置方案

DGMGRL> ENABLE CONFIGURATION;

激活资源

DGMGRL> ENABLE RESOURCE 'ctsdb';

资源的日志传送模式必须和Primary库的数据保护模式相匹配,比如数据保护模式是maximize availability,那么需要配置资源的LogXptMode属性为SYNC方式。

DGMGRL>ALTER RESOURCE 'ctsdb' ON SITE 'Boston' SET PROPERTY LogXptMode=SYNC;

DGMGRL>ALTER RESOURCE 'report_db' ON SITE 'Beijing' SET PROPERTY LogXptMode=SYNC;

DGMGRL> ALTER CONFIGURATION SET PROTECTION MODE AS MAXAVAILABILITY;

查看资源情况

DGMGRL> show resource verbose 'ctsdb';

查看某个节点上资源中的某一属性

DGMGRL> show resource verbose 'ctsdb' 'LogXptMode' on site 'Boston';

DGMGRL> SHOW RESOURCE 'ctsdb' LogXptStatus;

查看Broker的日志

DGMGRL> show log latest on site 'Boston';

查看数据库告警日志

DGMGRL> show log alert latest on site 'Boston';

查看资源的各种属性

DGMGRL> SHOW RESOURCE 'ctsdb' SendQEntries;

DGMGRL> SHOW RESOURCE 'report_db' SbyLogQueue;

DGMGRL> show resource verbose 'ctsdb' InconsistentLogXptProps;

修改资源属性,将自动修改数据库的相应初始化参数

DGMGRL> ALTER RESOURCE product_db on site v280 SET PROPERTY StandbyArchiveDest = '/global/oradata/ctsdb/archive';

Property "standbyarchivedest" updated.

DGMGRL> ALTER RESOURCE product_db on site v280 SET PROPERTY StandbyFileManagement = 'AUTO';

Property "standbyfilemanagement" updated.

DGMGRL> ALTER RESOURCE product_db on site v280 SET PROPERTY ArchiveLagTarget = '3600';

Property "archivelagtarget" updated.

停止Data Guard环境中的某个节点

DGMGRL> ALTER RESOURCE 'report_db' ON SITE 'Beijing' SET STATE='offline';

启动Data Guard环境中的某个节点

DGMGRL> ALTER RESOURCE 'report_db' ON SITE 'Beijing' SET STATE='LOGICAL-APPLY-ON';

修改 Data Guard环境中的某个节点的状态

DGMGRL> ALTER RESOURCE 'report_db' ON SITE 'v480' SET STATE='READ-ONLY';

先停止连接到备用库上的所有连接

DGMGRL> ALTER RESOURCE 'report_db' ON SITE 'v480' SET STATE='PHYSICAL-APPLY-ON';

停止Broker

SQL> ALTER SYSTEM SET DG_BROKER_START=FALSE;

作Switchover

DGMGRL> SWITCHOVER TO 'v480';

然后关闭Pirmary和Standby,重新启动

七.在Cluster环境中的主备切换步骤

在应用中cluster环境是很常见的,下面简单介绍一下在Sun Cluster 3.0的环境中,如果作Data Guard主备数据库的Switchover工作。

1.由于Cluster环境的监控,我们要手动关闭数据库的话,必须先关闭cluster,单独起一个节点的oracle。其中listener.ora.sigle的配置文件是预先写好的监听配置,主要不同是用主机的真实IP替换原先Cluster环境中的虚拟IP。

/usr/cluster/bin/scswitch -F -g oracle-rg

mount /global/oradata

cd /export/home/oracle/app/oracle/product/9.2.0/network/admin

cp listener.ora.sigle listener.ora

lsnrctl start

lsnrctl start listener_dg

sqlplus “/ as sysdba”

startup

2.在SQL*Plus中依次进行以下操作,完成切换Primary和Standby的工作

主数据库端:

ALTER DATABASE COMMIT TO SWITCHOVER TO PHYSICAL STANDBY;

SHUTDOWN IMMEDIATE;

STARTUP NOMOUNT;

ALTER DATABASE MOUNT STANDBY DATABASE;

备用数据库端:

ALTER DATABASE COMMIT TO SWITCHOVER TO PRIMARY;

SHUTDOWN IMMEDIATE;

STARTUP;

主数据库端:

ALTER DATABASE RECOVER MANAGED STANDBY DATABASE DISCONNECT FROM SESSION;

八.参考文档

Oracle Data Guard Concepts and Administration Release 2 (9.2)

Oracle9i Data Guard Broker Release 2 (9.2)

技术专题总结:standby Database - snowhite、chao_ping

Oracle 9i备用数据库配置使用参考手册 - piner

[作者简介]

张乐奕,通常使用的网名为kamus,也曾用过seraphim,现在任职于北京某大型软件公司,Oracle数据库DBA,主要负责证券行业的核心交易系统数据库管理及维护工作。

热切关注Oracle技术和相关操作系统技术,出没于各大数据库技术论坛,目前是中国最大的Oracle技术论坛www.itpub.net的数据库管理版版主,

转载于:https://www.cnblogs.com/sopost/archive/2012/05/20/2509354.html

Oracle9i数据库DataGuard实施及维护手册3相关推荐

  1. Oracle9i数据库Data Guard实施及维护手册 1

    Oracle9i数据库Data Guard实施及维护手册 By Kamus 一.Data Guard介绍 备用数据库(standby database)是ORACLE 推出的一种高可用性(HIGH A ...

  2. oracle部署在mysql_Oracle数据库部署实施流程

    作为一个Oracle数据库的DBA,部署一套Oracle数据库属于基本技能,那么完整的部署一套Oracle数据库应该包含哪些内容呢?下面我们来 作为一个Oracle数据库的DBA,部署一套Oracle ...

  3. erwin连接oracle数据库,erwin连接oracle9i数据库

    评论 # re: erwin连接oracle9i数据库 2008-05-14 17:25 为鹏飞 帮帮我好吗,我用的是oracle10g,也出现了这样的情况,现在还没解决.把您的联系方式发到我邮箱里我 ...

  4. oracle9i数据库自动备份,Windows环境下Oracle9i数据库文件的自动备份

    我们要经常对oracle9i数据库进行导出备份,那么需要一种让它自动执行的方法 参考了网友们的做法,我的方法如下: 第一步: 打开记事本输入: exp test/test@test file=d:/b ...

  5. oracle数据库部署策略,Oracle数据库部署实施流程

    作为一个Oracle数据库的DBA,部署一套Oracle数据库属于基本技能,那么完整的部署一套Oracle数据库应该包含哪些内容呢?下面我们来 作为一个Oracle数据库的DBA,部署一套Oracle ...

  6. oracle9i怎样管理数据,Oracle9i数据库管理员使用大全

    第1章 Oracle数据库概述 1.1 Oracle数据库特点 1.2 Oracle数据库发展过程 1.3 Oracle数据库应用系统结构 1.3.1 Oracle数据库应用系统层次结构 1.3.2 ...

  7. adg不同系统_数据库ADG实施手册

    数据库 ADG 实施手册 以下均以主库为 RAC 模式.备库为单实例模式为例,操作系统均为 AIX : 一.源端需配合提供的相关信息 1 . rman 脚本 需注意:应当先备份数据文件, 然后备份控制 ...

  8. 数据库原理(十 四)- 数据库的实施和维护

    数据库原理(十 四)- 数据库的实施和维护 前言 数据的载入和应用程序的调试 数据库的试运行 数据库的运行和维护 借鉴 前言 完成数据库的物理设计之后,设计人员就要对数据库系统进行实施和试运行,在试运 ...

  9. oracle9i档案文件创建,Oracle9i数据库系统管理 哪里有档案管理软件啊?

    我给你一个软件,下载地址请见参考资料里面,进去之后就可以找到啦 关于软件的详细介绍如下: 由东方信腾自主研发的方信文档管理系统采用JAVA语言开发,遵循J2EE规范,多层结构体系,支持MySQL.MS ...

最新文章

  1. docker:Error running DeviceCreate (createSnapDevice) dm_task_run failed
  2. 手机端网站测试用什么软件,3款优秀的移动webAPP网站在线测试工具推荐
  3. 在HTML5中如何利用Canvas处理并存储图片
  4. c语言字符串传给swift,如何把字符串数组从 Swift 传递给 C
  5. linux等候脚本,linux – 在bash脚本中继续之前等待通过ssh运行的脚本完成
  6. [MLDN魔乐科技]Oracle视频教程
  7. java线程同步机制,实现同步锁
  8. 【原型】Axure基本入门
  9. MongoDB 后台创建索引、查看创建进度等
  10. 计算机在微表情的应用,基于深度卷积神经网络的微表情识别
  11. 2011年,痛并快乐着
  12. 【Druid】(四)Apache Druid 部署和配置(单机版 / Docker 容器版 / Kubernetes 集群版)
  13. 解决专利侵权的另一个想法:消除陪审团审判
  14. Zigbee之旅(二):第一个CC2430程序——LED灯闪烁实验
  15. 【C++primer中级】31-39
  16. Sweet Home 3D for Mac(3D室内设计软件)
  17. 接口 使用 Excel
  18. 超强安利芒果TV for Mac客户端V6.3.7官方版
  19. python全栈之巅_Windows运维之关于WIN7故障模块StackHash_0a9e解决方法
  20. Wincc服务器右下RT状态,西门子WinCC运行版7.4 (RT128)

热门文章

  1. MATLAB是一种面向数值计算,MATLAB是一种面向数值计算的高级程序设计语言。
  2. linux上安装osg_Linux下编译OSG全过程
  3. mysql limit 1 10000_Mysql面试题,优化:SELECT * FROM user LIMIT 10000,1.
  4. AT1 one-dimensional objects
  5. pandas基础实例
  6. python代码编写规范
  7. ros melodic控制真实机械臂之等周期输出插补点
  8. python神奇功能_16个你毫不知道的Python神奇技能
  9. selectprovider 分页_修改EFOracleProvider——解决分页排序问题
  10. 提高python 程序运行速度_3个Python函数帮程序员们避免编写循环,提高运行速度...