1,简介
01,介绍
Data Guard broker是建立在Data Guard基础上的一个对Data Guard配置,集中管理操作的一个平台.我们再上次DG主备切换的时候会发现特别麻烦,为此broker出来了.
02,DGbroker的三种保护模式
– Maximum protection
在Maximum protection下, 可以保证从库和主库数据完全一样,做到zero data loss.事务同时在主从两边提交完成,才算事务完成。如果从库宕机或者网络出现问题,主从库不能通讯,主库也立即宕机。在这种方式下,具有最高的保护等级。但是这种模式对主库性能影响很大,要求高速的网络连接。
– Maximum availability
在Maximum availability模式下,如果和从库的连接正常,运行方式等同Maximum protection模式,事务也是主从库同时提交。如果从库和主库失去联系,则主库自动切换到Maximum performance模式下运行,保证主库具有最大的可用性。
– Maximum performance
在Maximum performance,主库把归档的 archived log通过arch进程传递给从库,在这种方式下,主库运行性能最高,但是不能保证数据不丢失,且丢失的数据受redo log的大小影响。在redo log过大的情况下,可能一天都没有归档一个日志,可以通过手工切换日志的方式来减小数据的丢失。
03,查看DGbroker的模式
show configuration verbose;
二,配置
01,配置监听,主库添加
(SID_DESC = (GLOBAL_DBNAME=oracle01_DGMGRL) (ORACLE_HOME =/u01/app/oracle/product/12.1.0/db_1) (SID_NAME =oracle01) )
lsnrctl reload
02,备库配置监听
(SID_DESC = (GLOBAL_DBNAME=standby_DGMGRL) (ORACLE_HOME =/u01/app/oracle/product/12.1.0/db_1) (SID_NAME =standby) )
lsnrctl reload
03,主备配置操作
show parameter dg_broker_config_file
可以修改dg_broker_config_file参数。这里就用默认的路径,也可以自己指定。如果是在RAC环境中,这个把这个文件把到共享的存储上面,如果有ASM可以放到ASM中。
启动broker
alter system set dg_broker_start=true;
04,主库操作
运行: dgmgrl 连接数据库 DGMGRL> connect sys/123456@oracle01 帮助命令 DGMGRL>help create 创建 DGMGRL>create configuration dg as primary database is oracle01 connect identifier is oracle01; 如果发现创建出错,或者其他原因 可以执行 DGMGRL> remove configuration; Removed configuration
启用配置文件
enable configuration
----------------------------------------------------------------------------------------------
如果是12G 出现 ORA-16698错误那可以通过在Primary 和 Standby上取消log_archive_dest_n参数来解决,
实际这一块的参数应当是交给DG broker 来管理了,不再需要人为介入设置。
即执行: alter system set log_archive_dest_2='';
然后继续执行:create configuration dg as primarydatabase is oracle01 connect identifier is oracle01
----------------------------------------------------------------------------------------------
05,备库操作
DGMGRL> add database standby as connect identifier is standby; Database "standby" added
DGMGRL>show configuration ----查看
06,查看详细配置
DGMGRL>show database verbose oracle01
DGMGRL>show database verbose standby