DataGuard之DG Broker配置详解

DG_Broker配置

上面给大家讲解了DG切换的过程,是不是感觉DG的切换特别麻烦,步骤比较多,有没有办法实现就敲一条命令就可以完成所有的配置呢?答案是肯定的,DG_broker就是为此而诞生的,下面给大家演示下DG_broker使用:

DG_broker其实就是dgmgrl工具,安装数据库软件或数据库管理客户端都可以获取到这个工具,本文中是另外使用一台主机安装数据库软件进行配置。

首先我们配置dgmgrl主机的tnsnames.ora配置,具体参考上文DG配置部分,使其可以访问到主备库,接下来就是dgmgrl的配置了

a)broker配置

在主库上进行配置,

(也可以在备库上或者另找一台安好客户端机器上配置都可以)



修改一下监听
注:如果不修改监听利用原有的监听也是可以得,下面会介绍这种方法

主库:

LISTENER =

  (DESCRIPTION_LIST=

    (DESCRIPTION =

      (ADDRESS =(PROTOCOL = TCP)(HOST = 192.168.180.43)(PORT = 1521))

      (ADDRESS =(PROTOCOL = IPC)(KEY = EXTPROC1521))

    )

  )

SID_LIST_LISTENER =

 (SID_LIST =

   (SID_DESC =

     (GLOBAL_DBNAME= ocrl)

     (ORACLE_HOME =/u01/app/oracle/product/12.1.0/db_1)

     (SID_NAME =ocrl)

   )

   (SID_DESC =

     (GLOBAL_DBNAME=ocrl_DGMGRL)

     (ORACLE_HOME =/u01/app/oracle/product/12.1.0/db_1)

     (SID_NAME =ocrl)

   )

 )                                                                                                                                                        

备库

LISTENER =

  (DESCRIPTION_LIST=

    (DESCRIPTION =

      (ADDRESS =(PROTOCOL = TCP)(HOST = 192.168.180.44)(PORT = 1521))

      (ADDRESS =(PROTOCOL = IPC)(KEY = EXTPROC1521))

    )

  )

SID_LIST_LISTENER =

 (SID_LIST =

   (SID_DESC =

     (GLOBAL_DBNAME= ocrls)

     (ORACLE_HOME =/u01/app/oracle/product/12.1.0/db_1)

     (SID_NAME =ocrls)

   )

   (SID_DESC =

     (GLOBAL_DBNAME=ocrls_DGMGRL)

     (ORACLE_HOME =/u01/app/oracle/product/12.1.0/db_1)

     (SID_NAME =ocrls)

   )

 )

记住要重启监听

主库和备库上都要执行

SQL> show parameter dg_broker_config_file

修改dg_broker_config_file参数。这里就用默认的路径,也可以自己指定。如果是在RAC环境中,这个把这个文件把到共享的存储上面,如果有ASM可以放到ASM中。

启用BROKER

在两个数据库上都执行:

SQL> alter system set dg_broker_start=true;


在主库或者备库操作做下面的操作,或者在其他已经安装oracle客户端的机器上操作也是可以。

这里选择在主库上执行

ocrl:/home/oracle@oracle1>dgmgrl

DGMGRL>connect sys/oracle@ocrl  //连接数据库


DGMGRL>help create //help是帮助命令

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


这里报错:

这个报错出现在12c上,11g就不会报错。

这个错误可以通过在Primary 和 Standby上取消log_archive_dest_n参数来解决,实际这一块的参数应当是交给DG broker 来管理了,不再需要人为介入设置。

在主库和备库上分别执行下面的命令

SQL> alter system set log_archive_dest_2='';


再次执行:create configuration dg as primarydatabase is ocrl connect identifier is ocrl;

启用配置文件

DGMGRL>enable configuration


增加备库到配置文件中

DGMGRL>help add

DGMGRL>add database ocrls as connect identifier is ocrls;


查看配置文件

DGMGRL>show configuration


查看某个数据库的配置消息

DGMGRL>show database verbose ocrl

DGMGRL>show database verbose ocrls


#这里要注意了。broker里面的连接的service_name是<db_unique_name>_DGMGRL,所以上面要修改一下监听,

所以上面要修改监听文件,如果不修改监听文件的话,那也可以执行下面的命令来修改StaticConnectIdentifier//这就是上面所说的另一种方法

DGMGRL>edit database ocrl set property StaticConnectIdentifier= '(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=192.168.168.43)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=ocrl)(INSTANCE_NAME=ocrl)(SERVER=DEDICATED)))';

DGMGRL> edit database ocrls set property  StaticConnectIdentifier    ='(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=192.168.168.44)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=ocrls)(INSTANCE_NAME=ocrls)(SERVER=DEDICATED)))';

b)broker切换

开始切换

DGMGRL> switchover to ocrls;


再次查看配置文件

DGMGRL> show configuration


发现主备已经成功完成切换了,至此dg broker配置完成

如果有配置错误还请不啬指出,欢迎加入oracle qq群: 425614362


©️2020 CSDN 皮肤主题: 精致技术 设计师:CSDN官方博客 返回首页