在Oracle DataGuard环境中使用Broker-自动Fast Start Failove

教程发布:风哥 教程分类:ITPUX技术网 更新日期:2022-02-12 浏览学习:147

在Oracle DataGuard数据库容灾环境中使用Broker-自动Fast Start Failove
一、环境介绍

Data Guard 环境:

Primary数据库:oracle 10.2.0.5.0
操作系统: redhat 4.4
主机名:source
IP地址:192.168.10.101
数据库SID:source
DB_UNIQUE_NAME:source_pr

Standby数据库:oracle 10.2.0.5.0
操作系统: redhat 4.4
主机名:target
IP地址:192.168.10.102
数据库SID:source
DB_UNIQUE_NAME:source_st

二、dataguard启停

注意Data Guard 启动顺序:

启动顺序:先standby ,后primary;
关闭顺序:先primary 后standby;

在备库将实例启动到mount 状态:
SQL>startup nomount;
SQL>alter database mount standby database;
SQL>alter database recover managed standby database disconnect from session;
如果要取消恢复:alter database recover managed standby database cancel;

在备库启动监听:
$lsnrctl start

在主库启动实例:
SQL> startup;

在主库启动监听:
$lsnrctl start

在主库验证归档目录是否有效:

SQL> select dest_name,status,error from v$archive_dest;

如果有错误,要排查原因。

SQL> alter system switch logfile;
SQL> select max(sequence#) from v$archived_log;

查看数据库模式
SQL>select dest_name,status,database_mode,recovery_mode,protection_mode from v$archive_dest_status;
SQL>select status,database_mode from v$archive_dest_status;
SQL>select OPEN_MODE, PROTECTION_MODE, ACTIVATION#,DATABASE_ROLE, SWITCHOVER# ,SWITCHOVER_STATUS from v$database;

三、Fast Start Failover概述与介绍

1、Broker

Data Guard环境设置了Broker后,当主库出现以下情况,Broker就会自动进行主备库的切换。
1) Instance Failure
2) Shutdown Abort
3) Offline Datafiles due to I/O error
4) Network disconnection

切换时,Observer会将备库变成主库。 同时Observer通过应用Flashback log将原来的主库变成备库。所以,Data Guard Broker必须开启Flashback,同时将DG 配置在maximum availability模式。

Data Guard Broker会在所有的主备库上使用自己的DMON进程和配置文件进行通信。当我们将DG_BROKER_START 设置为true之后,DMON进程就会启动。 对于Broker的配置文件,我们可以通过Enterprise Manger 或者使用DGMGRL命令进行创建。

Broker的配置文件有自己的参数和设置。 Data Guard 允许有多分配置文件,所以我们需要在DG_BROKER_CONFIG_FILEn 参数里指定正确的配置文件。 要注意的是, 这个控制文件是二进制文件,不要手动去修改它, 这样会破坏这个文件。

如果是RAC 环境, 所有的实例有一份Broker 配置文件。 该文件放在共享设备上。

Broker的更多内容参考:
Interaction Between the Data Guard Broker and a Data Guard Configuration [ID 249703.1]

Data Guard, Concepts and Administration
Data Guard Broker
Note:180031.1: Creating a Data Guard configuration
Note:186150.1: Data Guard 9i Creating a Logical Standby database
Note:214071.1: Creating a configuration using Data Guard Manager
Note:201669.1: Setup and maintenance of Data Guard Broker using DGMGRL
Note:745201.1: Diagnosing Connection Problems with an active Data Guard Broker configuration

2、failover类型

failover有两种类型:完全failover和立即failover。

完全failover
进行完全failover操作的是很broker会竟可能的恢复数据,同时在failover完成之后会根据情况尽可能的将没有参与failover的standby变成新的primary的可用的standby。

立即failover
立即failover的操作开始之后broker不再去试图恢复更多的数据,另一个就是failover完成之后所有没有参与failover的standby都要重新启用。
调用这两种failover的命令如下

-- 完全failover
FAILOVER TO standby_database_name;

-- 立即failover
FAILOVER TO standby_database_name IMMEDIATE;
broker执行完全failover的过程
检查primary是否可用,可用的话给出一条警告信息。
确认目标standby可用,不可用的话failover失败。RAC环境中将关闭standby的其他不参与的instance。
等待目标standby完成还在队列中的redo信息之后关闭redo log apply或是sql apply。
将目标standby转换成新的primary。
将新的primary数据库打开为读写模式。
检查其他的standby是否能成为新primary的standby,如果可以的话则该standby的状态保证不变,否则则需要re-enable。
启动redo传送服务将redo传送给那些不需要re-enable的standby数据库。
如果是RAC环境则重启那些之前关闭的instance。
broker执行立即failover的过程
确认目标standby可用,不可用的话failover失败。RAC环境中将关闭standby的其他不参与的instance。
立即停止redo log apply或是sql apply,不管是否还有可恢复的数据,这样可能会造成数据丢失。
将目标standby转换成新的primary并打开到读写模式,并启动redo传送服务。

本文标签:
网站声明:本文由风哥整理发布,转载请保留此段声明,本站所有内容将不对其使用后果做任何承诺,请读者谨慎使用!
【上一篇】
【下一篇】