共计 3427 个字符,预计需要花费 9 分钟才能阅读完成。
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
07, 配置错误
DGMGRL> show database standby;
Database – standby
Role: PHYSICAL STANDBY
Intended State: APPLY-ON
Transport Lag: 0 seconds (computed 81 seconds ago)
Apply Lag: (unknown)
Apply Rate: (unknown)
Real Time Query: OFF
Instance(s):
standby
Error: ORA-16797: database is not using a server parameter file
Database Status:
ERROR
是因为需要设置 spfile 的
SQL> show parameter spfile
NAME TYPE VALUE
———————————— ———– ——————————
spfile string
SQL> create spfile from pfile;
File created.
SQL> shutdown immediate;
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> startup
ORACLE instance started.
Total System Global Area 2505338880 bytes
Fixed Size 2255832 bytes
Variable Size 603980840 bytes
Database Buffers 1879048192 bytes
Redo Buffers 20054016 bytes
Database mounted.
Database opened.
SQL> show parameter spfile
NAME TYPE VALUE
———————————— ———– ——————————
spfile string /u01/app/oracle/product/11.2.0
/db_1/dbs/spfilestandby.ora
SQL>
08, 错误 2
DGMGRL> show configuration
Configuration – dg
Protection Mode: MaxPerformance
Databases:
oracle01 – Primary database
standby – Physical standby database
Error: ORA-16766: Redo Apply is stopped
Fast-Start Failover: DISABLED
Configuration Status:
ERROR
很清楚了, 进程停
尝试启动:
DGMGRL> edit database ‘standby’ set state=’apply-on’;
Succeeded.
更多 Oracle 相关信息见Oracle 专题页面 https://www.linuxidc.com/topicnews.aspx?tid=12
: