暂无图片
暂无图片
暂无图片
暂无图片
3
暂无图片

使用DG Broker搭建oracle 11gr2 ADG

IT那活儿 2022-01-03
2221

点击上方“IT那活儿”,关注后了解更多精彩内容!!

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提供的数据库可用性使数据更易于保护。
2. 简化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操作的相关参数。
3. 使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.oraSID_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.orapri =(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.logRMAN> 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 brokerNAME TYPE VALUE------------------------------------ ----------- ------------------------------dg_broker_config_file1 string /oradata/prod/dr1.datdg_broker_config_file2 string /oradata/prod/dr2.datdg_broker_start boolean TRUE
复制
5. 登录dg broker配置configuration(primary和standby任意一个可以)
[oracle@prod prod]$ dgmgrl /DGMGRL for Linux: Version 11.2.0.4.0 - 64bit ProductionCopyright (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" addedDGMGRL> enable configuration;Enabled.
复制
7. 查看broker congiruration状态
DGMGRL> show configurationConfiguration - prodProtection Mode: MaxPerformanceDatabases:prod_pri - Primary databaseprod_sty - Physical standby databaseFast-Start Failover: DISABLEDConfiguration Status:SUCCESS
复制
8. 到此,adg已经搭建成功,然后可以配置保护模式以及传输方式。
DGMGRL> edit database prod_pri set property LogXptMode='SYNC';Property "logxptmode" updatedDGMGRL> edit database prod_sty set property LogXptMode='SYNC';Property "logxptmode" updatedDGMGRL> edit database prod_pri set property StandbyFileManagement = 'AUTO';Property "standbyfilemanagement" updatedDGMGRL> edit database prod_sty set property StandbyFileManagement = 'AUTO';Property "standbyfilemanagement" updatedDGMGRL> edit configuration set protection mode as maxavailability;Succeeded.
复制
9. Switchover
Switchover时需要使用tnsnames登录数据库,否则数据库重启时会报错。
[oracle@prod ~]$ dgmgrl sys/#EDC5rdx@priDGMGRL for Linux: Version 11.2.0.4.0 - 64bit ProductionCopyright (c) 2000, 2009, Oracle. All rights reserved.Welcome to DGMGRL, type "help" for information.Connected.DGMGRL> switchover to prod_styPerforming 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 - prodProtection Mode: MaxAvailabilityDatabases:prod_sty - Primary databaseprod_pri - Physical standby databaseFast-Start Failover: DISABLEDConfiguration Status:SUCCESS
复制


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

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

文章转载自IT那活儿,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论

积土为山
暂无图片
3年前
评论
暂无图片 0
王翦,这个名字有分量。。。
3年前
暂无图片 点赞
2
墨天轮
暂无图片
3年前
回复
暂无图片 0
这个字怎么读?
3年前
暂无图片 点赞
回复
积土为山
暂无图片
3年前
回复
暂无图片 0
@墨天轮 王翦 jian ,和白起齐名的
3年前
暂无图片 点赞
回复