一步一步配置RAC DataGuard Broker 一、DataGuard Broker介绍 DataGuard Broker能更加容易的管理和维护多个Standby Database.如果有多个备库或者RAC数据库中有个多个实例,如果进行手工配置管理,就会太过于麻烦,ORACLE提供了DataGuard Broker工具,欧博娱乐可以在一台服务器上对所有数据库进行统一的配置和管理,这些配置会自动同步到各个数据库中。failover和switchover可以在DGMGRL工具中是用一条命令切换,大大简化了我们管理的过程。 简单介绍一下DataGuard Broker的工作原理:Oracle DataGuard Broker分为Client Side和Server Side。 DMON:它是一个用来管理Broker的后台进程,这个进程负责本地数据库与standby数据库的DMON进程进行通讯,当主库上接收到一个请求的时候,它会协调其他数据库上的DMON进程处理相应的请求,比如switchover.同时会更新本地系统中的配置文件,并与standby数据库上的DMON进程进行通信,更新Standby上的配置文件,欧博allbetDMON进程如下图: 配置文件:配置参数控制数据库状态、监控健康状况并提供其他操作特性。 二、DG_broker搭建(RAC到RACADG Broker搭建)1.主、备库需把log_archive_dest_2置为空在搭建DGbroker alter system set log_archive_dest_2='' scope=both sid='*';2.DB_BROKER_CONFIG_FILEn参数用于指定DataGuard配置文件的路径,DG_BROKER_START参数设置实例启动的时候是否自动启动Broker。特别注意一点:RAC中需要把broker配置文件放入ASM中 主库 ASMCA mkdir +fradg/orcl/DATAGUARDCONFIG mkdir +datadg/orcl/DATAGUARDCONFIG ALTER SYSTEM SET DG_BROKER_CONFIG_FILE1='+datadg/orcl/DATAGUARDCONFIG/dgb_config1.ora' SCOPE=BOTH sid='*'; ALTER SYSTEM SET DG_BROKER_CONFIG_FILE2='+fradg/orcl/DATAGUARDCONFIG/dgb_config2.ora' SCOPE=BOTH sid='*'; alter system set dg_broker_start=true scope=both sid='*'; 备库 ASMCA mkdir +fradg/orcladg/DATAGUARDCONFIG mkdir +datadg/orcladg/DATAGUARDCONFIG ALTER SYSTEM SET DG_BROKER_CONFIG_FILE1='+datadg/orcladg/DATAGUARDCONFIG/dgb_config1.ora' SCOPE=BOTH sid='*'; ALTER SYSTEM SET DG_BROKER_CONFIG_FILE2='+fradg/orcladg/DATAGUARDCONFIG/dgb_config2.ora' SCOPE=BOTH sid='*'; alter system set dg_broker_start=true scope=both sid='*';设置完上面的参数后,我们还需要修改监听listener.ora文件.我们必须添加一个静态注册的service_name为db_unique_name_DGMGRL.db_domain,这个service_name会在DGMGRL重启数据库的时候用到.通过DGMGRL重启数据库时DMON进程会先将数据库关闭,然后DGMGRL在通过静态监听中的service_name连接到数据库,发送启动的命令。 3.主库添加静态监听 一节点 SID_LIST_LISTENER=(SID_LIST=(SID_DESC=(GLOBAL_DBNAME=orcl_DGMGRL)(SID_NAME=orcl1)(ORACLE_HOME=/app/oracle/oracle/product/12.1.0/db_1))) 二节点 SID_LIST_LISTENER=(SID_LIST=(SID_DESC=(GLOBAL_DBNAME=orcl_DGMGRL)(SID_NAME=orcl2)(ORACLE_HOME=/app/oracle/oracle/product/12.1.0/db_1)))4.备库添加静态监听 一节点 SID_LIST_LISTENER=(SID_LIST=(SID_DESC=(GLOBAL_DBNAME=orcladg_DGMGRL)(SID_NAME=orcladg1)(ORACLE_HOME=/app/oracle/oracle/product/12.1.0/db_1))) 二节点 SID_LIST_LISTENER=(SID_LIST=(SID_DESC=(GLOBAL_DBNAME=orcladg_DGMGRL)(SID_NAME=orcladg2)(ORACLE_HOME=/app/oracle/oracle/product/12.1.0/db_1)))5.添加完成后依次reload监听 lsnrctl reloadreload完成后依次监听状态,查看对应服务是否注册在监听中 6.四节点oracle用户添加tnsnames.ora orcldb_DGMGRL = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 对应的vip)(PORT = 1521)) (ADDRESS = (PROTOCOL = TCP)(HOST = 对应的vip)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = orcldb_DGMGRL) ) ) orcldbadg_DGMGRL = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 对应的vip)(PORT = 1521)) (ADDRESS = (PROTOCOL = TCP)(HOST = 对应的vip)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = orcldbadg_DGMGRL) ) )7.主库一节点配置Broker dgmgrl sys/xxx CREATE CONFIGURATION 'orcl_broker'(broker的名字随意起) AS PRIMARY DATABASE IS 'orcl'(主库的db_unique_name) CONNECT IDENTIFIER IS 'orcl_DGMGRL'(连接主库的service_name); add database 'orcladg'(备库的db_unique_name) as connect identifier is 'orcladg_DGMGRL'(连接备库的service_name) maintained as physical; enable configuration;开启broker show configuration;检查broker配置 switchover to xxx;主备切换参数说明:orcl_broker是配置的名称,这里可以随便填PRIMARY DATABASE IS ‘orcl’ ,这儿的orcl是指database的db_unique_name,而connect identifier is ‘orcl_DGMGRL’这里的orcl_DGMGRL是指tnsname.ora连接到主库的net service name. add database ‘orcladg’ ,这儿的orcladg2是指database的db_unique_name,而AS CONNECT IDENTIFIER IS orcladg_DGMGRL 这里的orcladg_DGMGRL是指tnsname.ora连接到standby database的net service name. 8.常用命令 show configuration; show database orcl; show database orcladg; show database verbose orcl; show database verbose orcladg; show instance verbose orcl1 on database orcl; show instance verbose orcl2 on database orcl; show instance verbose orcladg1 on database orcladg; show instance verbose orcladg2 on database orcladg; (责任编辑:) |