DG Broker学习1(管理DG Broker Configuration)

来源:这里教程网 时间:2026-03-03 16:30:15 作者:

1.配置支持

Oracle Data Guard Broker能够创建由多达253个成员组成的代理配置,包括一个主库以及备库,far sync instances和Zero Data Loss Recovery Appliances的组合。
如果使用Oracle Enterprise Manager Cloud Control,则代理通过Oracle Enterprise Management通知机制控制配置的成员,监视配置的运行状况并报告运行状况和其他操作特征,如果使用的是DGMGRL,则通过SHOW命令。
受支持的Oracle Data Guard配置包含以下组件:
  • 主库(RAC或non-RAC)
  • 备库,far sync instances和Zero Data Loss Recovery Appliances的组合
  • 定义数据库之间连接的Oracle Net Services网络配置
  • Standby (archived redo log files) 参数和配置属性
  • Redo传输服务,将重做数据从主库传输到备库和far sync instances
  • 日志应用服务,这些服务将已归档的重做日志文件或备用重做日志文件中的重做数据应用于备库

    Oracle Data Guard日志应用服务使用重做数据更新备库,该重做数据由重做传输服务从主库自动传输。 归档的重做日志文件和备用重做日志文件包含所有数据库更改,但不可恢复或未记录的更改除外。
  • 在物理备库,Redo Apply将应用重做数据,以使备库与库保持一致。
  • 在逻辑备库上,SQL Apply应用重做数据以使备库与主库保持一致。
  • 在快照备库上,将接收重做数据,但不会应用重做数据,直到快照备库被转换回物理备库为止。
  • 在远程同步实例上,重做数据将被接收,然后转发到物理备库。 远程同步实例没有数据文件,也不应用它收到的任何重做数据。

    代理的Oracle Data Guard监视程序(DMON)流程将代理配置配置和维护为一组对象,可以将其作为一个单元进行管理和监视。 因此,当输入一个影响多个数据库的命令时,DMON进程将:
  • 在主数据库上执行请求
  • 根据请求与其他每个数据库的DMON流程进行协调
  • 更新本地系统上的配置文件
  • 与其他数据库的DMON进程进行通信,以更新其配置文件的副本

    通过DMON进程,可以一起配置,监控和控制数据库以及配置。 如果禁用配置,则还将禁用配置中所有数据库的代理管理。 如果以后启用配置,则会为配置中的每个数据库启用代理管理。

    代理在每个配置成员上使用相同的名称发布服务。 此配置范围的服务的默认名称是primarydbname_CFG,在创建配置时,后缀_CFG附加到主数据库的DB_UNIQUE_NAME初始化参数的值。 若要更改配置范围的服务的名称,请使用ConfigurationWideServiceName属性。

    2.配置属性
    配置属性控制broker配置的行为。
    可以使用DGMGRL或Cloud Control查看并动态更新这些属性的值。 但是,某些属性只能通过DGMGRL进行更新。
    配置属性具有整个配置范围。 这意味着您为属性设置的值将统一应用于配置中的每个数据库。

    3.设置DG Broker configuration文件
    首次启动代理时,将使用默认路径名和特定于操作系统的文件名自动创建和命名配置文件。
    为每个数据库维护配置文件的两个副本,以便始终记录配置的最后一个已知有效状态。 可以通过为该数据库设置以下初始化参数来覆盖默认路径名和文件名:
    DG_BROKER_CONFIG_FILE1
    DG_BROKER_CONFIG_FILE2
    在设置DG_BROKER_CONFIG_FILE1和DG_BROKER_CONFIG_FILE2初始化参数时,请注意以下限制:
  • 仅当Oracle Data Guard代理未运行(DG_BROKER_START = FALSE)时,才可以设置或更改这些参数。
  • 这些参数必须指定为所有Oracle RAC实例共享的Oracle ASM,Oracle OCFS或NFS。
  • 使用PL / SQL软件包DBMS_ROLLING执行升级时,DG_BROKER_CONFIG_FILEn参数必须指定Oracle主目录之外的位置。 (默认位置是Oracle主目录中的dbs目录。)

    3.1重命名Broker配置文件

    --01.disable broker configuration
    DGMGRL> disable configuration;
    --02.停止DG Broker DMON进程
    SQL> ALTER SYSTEM SET DG_BROKER_START=FALSE;
    --03.修改配置文件名
    SQL> ALTER SYSTEM SET DG_BROKER_CONFIG_FILE1=filespec1;
    SQL> ALTER SYSTEM SET DG_BROKER_CONFIG_FILE2=filespec2;
    --如果代理正在管理Oracle RAC数据库,则每个实例的DG_BROKER_CONFIG_FILE1的值和DG_BROKER_CONFIG_FILE2的值必须指向同一组物理文件。
    --04.文件移动的方法取决于文件当前所在的位置以及要将文件移动到的位置:
    如果文件位于操作系统文件系统上,请使用操作系统命令将文件移动到新位置。
    如果旧位置或新位置是Oracle ASM磁盘组,请使用DBMS_FILE_TRANSFER.COPY_FILE函数将文件传输到其新位置。
    --05.重启DG BROKER DMON进程
    SQL> ALTER SYSTEM SET DG_BROKER_START=TRUE;
    --06.启动broker配置文件
    DGMGRL> enable configuration;

    3.2在Oracle RAC环境中管理broker配置文件

    3.2.1使用群集文件系统(CFS)存放配置文件
    代理配置文件可以驻留在群集文件系统(CFS)上。
    如果这样做,则必须将所有实例上的DG_BROKER_CONFIG_FILEn参数设置为这些文件,包括CFS区域的路径。在这种情况下,所有实例的参数和值将是:
    DG_BROKER_CONFIG_FILE1=$ORACLE_BASE/admin/db_unique_name/dr1db_unique_name.dat
    DG_BROKER_CONFIG_FILE2=$ORACLE_BASE/admin/db_unique_name/dr2db_unique_name.dat

    3.2.2使用Oracle ASM磁盘组存放配置文件

    代理的配置文件也可以驻留在Oracle ASM磁盘组上。
    注意:由于配置文件必须由用户明确命名,因此这些配置文件不是Oracle托管文件(OMF)。要在Oracle ASM磁盘组上创建代理的配置文件,请将DG_BROKER_CONFIG_FILE1和DG_BROKER_CONFIG_FILE2初始化参数设置为包含以下内容的字符串值: 现有Oracle ASM磁盘组的名称,该磁盘组中现有的目录以及配置文件本身的名称。
    ALTER SYSTEM SET DG_BROKER_CONFIG_FILE1 = '+DG/DIRECTORY/DR1.DAT' SCOPE=BOTH;
    ALTER SYSTEM SET DG_BROKER_CONFIG_FILE2 = '+DG/DIRECTORY/DR2.DAT' SCOPE=BOTH;

    4.启动DG Broker
    设置配置文件后,必须将每个数据库的DG_BROKER_START初始化参数设置为TRUE,以启动DMON进程。
    默认情况下,DG_BROKER_START初始化参数设置为FALSE。 但是,可以通过以下方式设置值:
  • 如果使用的是Cloud Control,它将为创建的新备用数据库自动将DG_BROKER_START初始化参数设置为TRUE。
  • 如果使用的是DGMGRL,则必须将DG_BROKER_START初始化参数显式设置为TRUE,否则DG Broker将不会启动。 可以使用以下SQL语句设置DG_BROKER_START初始化参数:
    SQL> ALTER SYSTEM SET DG_BROKER_START=TRUE;

    5.Broker Configuration的管理周期
    该图显示了代理配置的生命周期。

    6.Enable和Disable操作
    在代理配置中启用或禁用数据库时,可以有效地启用或禁用代理管理和监视指定数据库的功能。
    启用和禁用操作仅针对处于代理配置中的数据库进行定义。不能在不属于代理配置的数据库上执行这些代理操作。
    禁用代理配置不会影响实际的Oracle Data Guard配置中的当前服务和操作。例如,当禁用代理配置时,Oracle Data Guard配置中的redo transport services和log apply services将继续保持不变,但是将无法再通过代理界面对其进行管理。
    此外,禁用数据库不会将其从代理配置文件中删除或删除。仍然可以更改已禁用数据库的属性,然后使用DGMGRL的ENABLE CONFIGURATION或ENABLE DATABASE命令或Cloud Control的Oracle Data Guard管理页面中的Enable选项重新启用使用代理进行管理的能力。

    7.Configuration状态
    配置状态显示配置的整体运行状况。配置的状态是从其所有数据库的状态获取的。
    以下列表描述了配置的可能状态模式:
  • Success:该配置(包括其中配置的所有数据库)均按用户指定的方式运行,没有任何警告或错误。
  • Warning:配置中的一个或多个数据库未按用户指定的方式运行。 要获取更多信息,请使用DGMGRL的SHOW DATABASE <db-unique-name>命令显示来定位每个数据库并检查其状态以发现问题的根源。
  • Error:配置中的一个或多个数据库失败,或者可能不再按照用户指定的方式运行。 要获取更多信息,请使用DGMGRL的SHOW DATABASE <db-unique-name>命令显示来定位每个数据库并检查其状态以揭示问题的根源。
  • Unknown/Disabled:配置的代理管理已禁用,并且代理不监视配置中数据库的状态。
  • ROLLING DATABASE MAINTENANCE IN PROGRESS:正在使用PL/SQL DBMS_ROLLING包执行的操作。

  • 相关推荐