Dg broker如何配置

来源:这里教程网 时间:2026-03-03 22:33:18 作者:

        DG Broker(Data Guard Broker)是Oracle数据库提供的一个集中式管理框架,用于简化Data Guard配置的创建、监控和维护。它将主库(Primary)和所有备库(Standby)视为一个整体系统,通过命令行工具 dgmgrl 或Oracle Enterprise Manager实现自动化管理。        接下来介绍如何配置使用 DG Broker。

1)broke r 配置

可以在主库 / 备库 / 额外一台上配置

修改监听:

vi $ORACLE_HOME/network/admin/listener.ora

主库(新增如下代码):

SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
      (GLOBAL_DBNAME= orcl)
      (ORACLE_HOME =/oracle/app/product/11.2.0/db_1)
    (SID_NAME =orcl)
  )
  (SID_DESC =
    (GLOBAL_DBNAME=orcl_DGMGRL)
      (ORACLE_HOME =/oracle/app/product/11.2.0/db_1)
      (SID_NAME =orcl)
  )
)

备库(新增):

SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
      (GLOBAL_DBNAME= orcl_std)
      (ORACLE_HOME =/oracle/app/product/11.2.0/db_1)
    (SID_NAME =orcl)
  )
  (SID_DESC =
    (GLOBAL_DBNAME=orcl_std_DGMGRL)
      (ORACLE_HOME =/oracle/app/product/11.2.0/db_1)
      (SID_NAME =orcl)
  )
)

重启监听

lsnrctl reload

  tnsping 进行检验是否配置正确。

2 )参数设置( 主备都要)

SQL> show parameter dg_broker_start
 
NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
dg_broker_start                      boolean     FALSE
 
SQL> alter system set dg_broker_start =true scope=both;

3 )配置 DG Broken

Oracle 用户:

dgmgrl

执行命令

DGMGRL> connect sys/oracle

  注意,这里有个 bug :无论用什么密码连进去都是可以的,但最后切换时会报错

DGMGRL> help create

DGMGRL> create configuration dg as primary database is orcl connect identifier is orcl;

前面的 orcl db_unique_name, 后面的是 orcl 为连接字符串  

DGMGRL> help add
DGMGRL> add database orcl_std as  connect identifier is orcl_std;

查看配置文件:

show configuration

启用配置文件:

enable configuration

停用配置:

disable configuration

显示数据库:

show database verbose orcl;

一键切换 switchover :

Switchover to 备库uniquename;

显示数据库状态报告:

show database orcl statusreport;
---------------------------------------------------------------------
STATUS REPORT
       INSTANCE_NAME   SEVERITY ERROR_TEXT
                     WARNING ORA-16714: the value of property ArchiveLagTarget is inconsistent with the database setting
                     WARNING ORA-16714: the value of property LogArchiveMaxProcesses is inconsistent with the database setting
                     WARNING ORA-16714: the value of property LogArchiveMinSucceedDest is inconsistent with the database setting

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

解决方法:重新定义以上参数

DGMGRL> edit database dbsty set property ArchiveLagTarget=0;
DGMGRL> edit database orcl set property LogFileNameConvert='/oracle/app/oradata/orcl/,/oracle/app/oradata/orcl/';
DGMGRL> edit database orcl_std set property LogFileNameConvert='/oracle/app/oradata/orcl/,/oracle/app/oradata/orcl/';

注意: LogFileNameConvert LogFileNameConvert 这两个参数 dgmgrl 读不到,需要重新配置一下

从主库连到备库的方法:

sqlplus   sys/oracle@orcl as sysdba
sqlplus  sys/密码@tns中的名称  as sydba

检测是否开启 DG Broken

ps -ef | grep dmon

前提:

1. 很重要,搭建 dg broker 之前一定一定要使备库日志应用与主库一致;

2.DG broken 需要创建备库日志组   日志大小相同 推荐备库组数 = 主库组数 +1

相关推荐