ORACLE 11G R2 DG BROKER 基础

Data Guard Broker 基础

1 Data Guard Broker配置要求
数据库版本为:企业版10G R1以上,可以是单实例或者rac环境;
在主库和备库上的COMPATIBLE参数必须设定为9.2.0或更高;
必须有oracle网络支持,GLOBAL_DBNAME属性必须设定为db_uniquename_DGMGRL.db_domain;
DG_BROKER_START参数要设置为TRUE;
主库必须运行在归档模式;
使用spfile来保证broker的配置文件和服务器初始化参数文件的一致;
所有的数据库必须在mount(物理备库)或者open(主库和逻辑备库)状态;
在rac环境下还需要配置DB_BROKER_CONFIG_FILEn参数,将该参数指定共享存储上;
rac环境下,需要在OCR中要设定start_options参数为mount;

srvctladd database -d <db_unique_name> -o <ORACLE_HOME> -s mount 或者 srvctlmodify database -d <db_unique_name> -o <ORACLE_HOME> -s mount

dataguard broker体系结构示意图:

 

 

 

1.1  Broker

       DataGuard环境设置了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模式。

 

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

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

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

 

1.2  MaximumAvailability模式

       最高可用性(Maximum availability):这种模式在不影响Primary数据库可用前提下,提供最高级别的数据保护策略。其实现方式与最大保护模式类似,也是要求本地事务在提交前必须至少写入一台Standby数据库的Standby Redologs中,不过与最大保护模式不同的是,如果出现故障导致Standby数据库无法访问,Primary数据库并不会被Shutdown,而是自动转为最高性能模式,等Standby数据库恢复正常之后,Primary数据库又会自动转换成最高可用性模式。

 

Maximumprotection/AVAILABILITY模式必须满足以下条件:

(1)Redo Archival Process: LGWR

(2)Network Tranmission mode: SYNC

(3)Disk Write Option: AFFIRM

(4)Standby Redo Logs: Yes

(5)standby database type: Physical Only

 

 

启动flashbackdatabase.

主库:  这个操作也需要在非open 状态执行。 主库需要shutdown后,启动到mount 状态执行。

SQL> Alterdatabase flashback on;

 

备库:需要先取消recover 进程,不然会报错。

 

2 进入DG BORKER 管理接口

.[oracle@DB-MASTERDBMAST]dgmgrl

DGMGRL for Linux: Version11.2.0.4.0 - 64bit Production

 

Copyright (c) 2000, 2009,Oracle. All rights reserved.

 

欢迎使用 DGMGRL, 要获取有关信息请键入 "help"。

DGMGRL> help

 

可使用以下命令:

add            在中介配置中添加备用数据库

connect        连接到 Oracle 数据库实例

convert        将数据库从一种类型转换为另一种

create         创建中介配置

disable        禁用配置, 数据库或快速启动故障转移

edit           编辑配置, 数据库或实例

enable         启用配置, 数据库或快速启动故障转移

exit           退出程序

failover       将备用数据库更改为主数据库

help           显示命令的说明和语法

quit           退出程序

reinstate      将标记为恢复的数据库更改为可行的备用数据库

rem            DGMGRL 会忽略注释

remove         删除配置, 数据库或实例

show           显示有关配置, 数据库或实例的信息

shutdown       关闭当前正在运行的 Oracle 数据库实例

sql            执行 SQL 语句

start          启动快速启动故障转移观察程序

startup        启动 Oracle 数据库实例

stop           停止快速启动故障转移观察程序

switchover     在主数据库和备用数据库之间切换角色

 

使用 "help<command>" 可以查看各个命令的语法

 

3 连接主库

DGMGRL> connectsys/oracle@DBMAST

已连接。

 

4 创建配置文件

DGMGRL> help create

创建中介配置

语法:

  CREATE CONFIGURATION <configurationname> AS

    PRIMARY DATABASE IS <database name>

CONNECT IDENTIFIER IS <connect identifier>;

 

DGMGRL> createconfiguration dg_broker_mast as primary database is DBMAST connect identifieris DBMAST;

已创建配置"dg_broker_mast", 其中主数据库为 "dbmast"

DGMGRL> showconfiguration;

配置 - dg_broker_mast

  保护模式:   MaxPerformance

  数据库:

    dbmast - 主数据库

快速启动故障转移: DISABLED

配置状态:

DISABLED

DGMGRL> enable configuration;

已启用。

DGMGRL> show configuration;

配置 - dg_broker_mast

  保护模式:   MaxPerformance

  数据库:

    dbmast - 主数据库

快速启动故障转移: DISABLED

配置状态:

SUCCESS

 

5添加备数据库

  ADD DATABASE <databasename>    <--显示名称

    [AS CONNECT IDENTIFIERIS <connect identifier>]  ßTNSNAME

    [MAINTAINED AS{PHYSICAL|LOGICAL}];

添加standby database到配置

DGMGRL> add database dbsalve as connect identifier is  dbsalve maintained as physical;

 

这里的参数要说明一下.add database ‘dbsalve′ ,这儿的dbsalve是指database的db_unique_name,

而AS CONNECT IDENTIFIER IS dbsalve这里的dbsalve是指tnsname.ora连接到standby database的net service name.

 

6 要配置成最大可用模式,

先把备库先移除去. 修改主库成最大可用模式后

 

 

DGMGRL> show configuration

 

配置 - dg_borker_mast_conf

 

  保护模式:   MaxAvailability

  数据库:

    dbmast - 主数据库

 

快速启动故障转移: DISABLED

 

配置状态:

SUCCESS

 

 

 

7 重新添加备库

DGMGRL> add database DBSALVE as connect identifier is  DBSALVE maintained as physical;

已添加数据库 "dbsalve"

DGMGRL> show configuration

 

配置 - dg_borker_mast_conf

 

  保护模式:   MaxAvailability

  数据库:

    dbmast  - 主数据库

    dbsalve - 物理备用数据库 (禁用)

 

快速启动故障转移: DISABLED

 

配置状态:

SUCCESS

 

DGMGRL> enable database dbsalve;

 

显示主和备库所有属性信息

DGMGRL> show database verbose dbmast;

数据库 - dbmast

 

  角色:         PRIMARY

  预期状态:    TRANSPORT-ON

  实例:

    DBMAST

 

  属性:

   DGConnectIdentifier             ='dbmast'

   ObserverConnectIdentifier       =''

    LogXptMode                      = 'SYNC'

    DelayMins                       = '0'

    Binding                         = 'optional'

    MaxFailure                      = '0'

    MaxConnections                  = '1'

    ReopenSecs                      = '300'

    NetTimeout                      = '30'

    RedoCompression                 = 'DISABLE'

    LogShipping                     = 'ON'

   PreferredApplyInstance          =''

   ApplyInstanceTimeout            ='0'

    ApplyParallel                   = 'AUTO'

   StandbyFileManagement           ='AUTO'

    ArchiveLagTarget                = '0'

   LogArchiveMaxProcesses          ='4'

   LogArchiveMinSucceedDest        ='1'

    DbFileNameConvert               = ''

   LogFileNameConvert              =''

   FastStartFailoverTarget         =''

   InconsistentProperties          = '(monitor)'

   InconsistentLogXptProps         ='(monitor)'

    SendQEntries                    = '(monitor)'

    LogXptStatus                    = '(monitor)'

    RecvQEntries                    = '(monitor)'

    ApplyLagThreshold               = '0'

   TransportLagThreshold           ='0'

   TransportDisconnectedThreshold  ='30'

    SidName                         = 'DBMAST'

   StaticConnectIdentifier         ='(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=DB-MASTER)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=DBMAST_DGMGRL)(INSTANCE_NAME=DBMAST)(SERVER=DEDICATED)))'

   StandbyArchiveLocation          ='/u05/arch_backup'

    AlternateLocation               = ''

    LogArchiveTrace                 = '0'

    LogArchiveFormat                = '%t_%s_%r.archlog'

    TopWaitEvents                   = '(monitor)'

 

数据库状态:

SUCCESS

 

DGMGRL> show database verbose dbsalve;

 

数据库 - dbsalve

 

  角色:         PHYSICAL STANDBY

  预期状态:   APPLY-ON

  传输滞后:   0 秒 (已在 0 秒之前计算)

  应用滞后:   0 秒 (已在 0 秒之前计算)

  应用速率:   5.31 MB/秒

  实时查询:   ON

  实例:

    DBSALVE

 

  属性:

   DGConnectIdentifier             ='dbsalve'

   ObserverConnectIdentifier       =''

    LogXptMode                      = 'SYNC'

    DelayMins                       = '0'

    Binding                         = 'OPTIONAL'

    MaxFailure                      = '0'

    MaxConnections                  = '1'

    ReopenSecs                      = '300'

    NetTimeout                      = '30'

    RedoCompression                 = 'DISABLE'

    LogShipping                     = 'ON'

   PreferredApplyInstance          =''

   ApplyInstanceTimeout            ='0'

    ApplyParallel                   = 'AUTO'

   StandbyFileManagement           = 'AUTO'

    ArchiveLagTarget                = '0'

   LogArchiveMaxProcesses          ='4'

   LogArchiveMinSucceedDest        ='1'

    DbFileNameConvert               = '/u04/DBMAST, /u04/DBSALVE'

   LogFileNameConvert              ='/u01/online_log_flash/DBMAST, /u02/onlinelog/DBSALVE'

   FastStartFailoverTarget         =''

   InconsistentProperties          ='(monitor)'

   InconsistentLogXptProps         ='(monitor)'

    SendQEntries                    = '(monitor)'

    LogXptStatus                    = '(monitor)'

    RecvQEntries                    = '(monitor)'

    ApplyLagThreshold               = '0'

   TransportLagThreshold           ='0'

   TransportDisconnectedThreshold  ='30'

    SidName                         = 'DBSALVE'

    StaticConnectIdentifier         ='(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=DB-Salve)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=DBSALVE_DGMGRL)(INSTANCE_NAME=DBSALVE)(SERVER=DEDICATED)))'

   StandbyArchiveLocation          ='/u05/arch_backup'

    AlternateLocation               = ''

    LogArchiveTrace                 = '0'

    LogArchiveFormat                = '%t_%s_%r.archlog'

    TopWaitEvents                   = '(monitor)'

 

数据库状态:

SUCCESS

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值