使用DG Broker搭建oracle 11gr2 ADG

Broker介绍
DG Broker是一个分布式管理框架,可自动且集中创建、维护和监控 DG。
DG Broker自动化和简化的一些操作:
创建 DG,包括一个主库和零个或多个备库。数据库可以是单实例、RAC 或RAC One Node 数据库。
将备库添加到现有 Data Guard 配置。
管理配置的保护模式。
使用单个命令调用switchover或failover,以启动和控制配置中所有数据库的复杂角色更改。
将failover配置为在主库丢失时自动发生,无需人工干预即可提高可用性。
监控整个配置的状态,捕获诊断信息,redo apply率和redo生成率等统计信息,并通过集中监控、测试和性能工具快速检测问题。
评估数据库是否可以switchover成为主库。
评估是否在数据库之间正确配置了网络。

broke作用

  1. 灾难保护

Broker增强了数据保护和灾难保护功能。可以通过客户端访问DG配置中的任何系统。如果主库出现故障,broker将自动执行任何一个备库switchover为主库并接管生产处理的过程。DG提供的数据库可用性使数据更易于保护。

  1. 简化switchover和failover操作

broker简化了switchover和failover,允许使用DGMGRL 命令行界面上的单个命令。对于无人值守管理,可以启用fast-start failover,以允许broker确定是否需要failover并自动启动failover到预先指定的目标备用数据库,无需 DBA 干预。可以将fast-start failover配置为不丢失数据或丢失可配置的数据量。
fast-start failover无需手动干预即可提高可用性,从而降低管理成本。手动failover可以准确控制发生failover的时间以及目标备用数据库。无论选择哪种方法,broker都会协调配置中所有数据库的角色转换。failover完成后,broker会发布快速应用程序通知 (FAN) 事件以通知应用程序新的主节点可用。
只需一个命令即可启动复杂的角色更改,完成数据库之间的switchover或failover操作。DGMGRL SWITCHOVER 和 FAILOVER 命令只需要在启动之前指定目标备库,并完成配置数据库的SWITCHOVER 和 FAILOVER操作的相关参数。

  1. 使Oracle RAC数据库具有更高的可用性和可扩展性

如果Oracle RAC主库的一个实例出现故障,Oracle Clusterware将尝试恢复故障的实例并保持主库可用。而从DG的角度来看,只要主库还有一个实例继续将redo数据传输到备库,主库就仍然可用。如果Oracle Clusterware无法恢复故障的实例,则RAC数据库将继续使用一个活动较少的实例自动运行。如果主库的最后一个实例出现故障,并且启用了fast-start failover,则broker可以通过自动failover到预先确定的备库来继续提供高可用性。
Clusterware与broker一起工作,以便根据需要在旧主库上正确重新启动实例,然后启动在新主库上定义的服务。broker管理底层DG配置及其数据库角色,而Oracle Clusterware管理依赖于这些角色的服务可用性。在DG配置中发生角色更改时,依赖Oracle Clusterware管理服务可用性的应用程序将只看到服务的临时暂停。

DG Broker搭建adg过程展示

  1. 配置静态监听以及tnsnames.ora
[oracle@prodsty admin]$ cat listener.ora
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(GLOBAL_DBNAME = prod)
(ORACLE_HOME = /u01/app/oracle/product/11.2.0/db_1)
(SID_NAME = prod)
)
)
LISTENER =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.56.2)(PORT = 1521))
)
Tnsnames.pra
[oracle@prodsty admin]$ cat tnsnames.ora
pri =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.56.1)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = prod)
)
)
sty =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.56.2)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = prod)
)
)

2. Standby同步primary的参数文件以及密码文件

[oracle@prodpri dbs]$scp initprod.ora 192.168.**.*:
/u01/oracle/product/db11gr2/dbs
[oracle@prodpri dbs]$scp orapwprod 192.168.**.*:
/u01/oracle/product/db11gr2/dbs

并修改db_unique_name,创建相关目录,启动数据库到nomount状态。

SQL> startup nomount。

3. 使用duplicate在standby端恢复数据。

[oracle@prodsty dbs]$rman target sys/"#EDC5rdx"@pri 
auxiliary sys/"#EDC5rdx"@sty nocatalog <<EOF >rman.log
RMAN> duplicate target database for standby from active 
database dorecover nofilenamecheck;

4. Primary和standby开启dg broker

SQL> alter system set dg_broker_config_file1 ='/oradata/prod/dr1.dat';
System altered.
SQL>  alter system set dg_broker_config_file2 ='/oradata/prod/dr2.dat';
System altered.
SQL> alter system set dg_broker_start=true;
System altered.
SQL> show parameter broker
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
dg_broker_config_file1 string /oradata/prod/dr1.dat
dg_broker_config_file2 string /oradata/prod/dr2.dat
dg_broker_start boolean TRUE

5. 登录dg broker配置configuration(primary和standby任意一个可以)

[oracle@prod prod]$ dgmgrl /
DGMGRL for Linux: Version 11.2.0.4.0 - 64bit Production
Copyright (c) 2000, 2009, Oracle. All rights reserved.
Welcome to DGMGRL, type "help" for information.
Connected.
DGMGRL> create configuration prod as primary database is prod_pri connect identifier is pri;
Configuration "prod" created with primary database "prod_pri"

6. 添加standby进入broker congiruration

DGMGRL> add database prod_sty as connect identifier is sty maintained as physical;
Database "prod_sty" added
DGMGRL> enable configuration;
Enabled.

7. 查看broker congiruration状态

DGMGRL> show configuration
Configuration - prod
Protection Mode: MaxPerformance
Databases:
prod_pri - Primary database
prod_sty - Physical standby database
Fast-Start Failover: DISABLED
Configuration Status:
SUCCESS

8. 到此,adg已经搭建成功,然后可以配置保护模式以及传输方式。

DGMGRL> edit database prod_pri set property LogXptMode='SYNC';
Property "logxptmode" updated
DGMGRL> edit database prod_sty set property LogXptMode='SYNC';
Property "logxptmode" updated
DGMGRL> edit database prod_pri set property StandbyFileManagement = 'AUTO';
Property "standbyfilemanagement" updated
DGMGRL> edit database prod_sty set property StandbyFileManagement = 'AUTO';
Property "standbyfilemanagement" updated
DGMGRL> edit configuration set protection mode as maxavailability;
Succeeded.

9. Switchover
Switchover时需要使用tnsnames登录数据库,否则数据库重启时会报错。

[oracle@prod ~]$ dgmgrl sys/#EDC5rdx@pri
DGMGRL for Linux: Version 11.2.0.4.0 - 64bit Production
Copyright (c) 2000, 2009, Oracle. All rights reserved.
Welcome to DGMGRL, type "help" for information.
Connected.
DGMGRL> switchover to prod_sty
Performing switchover NOW, please wait...
New primary database "prod_sty" is opening...
Operation requires startup of instance "prod" on database "prod_pri"
Starting instance "prod"...
ORACLE instance started.
Database mounted.
Database opened.
Switchover succeeded, new primary is "prod_sty"

10. 切换完成

DGMGRL> show configuration;
Configuration - prod
Protection Mode: MaxAvailability
Databases:
prod_sty - Primary database
prod_pri - Physical standby database
Fast-Start Failover: DISABLED
Configuration Status:
SUCCESS

本 文 原 创 来 源:IT那活儿微信公众号(上海新炬王翦团队)

发表评论

登录后才能评论
网站客服
网站客服
申请收录 侵权处理
分享本页
返回顶部