【原理】ORACLE DATAGUARD 相关参数分析

【原理】ORACLE DATAGUARD 相关参数分析

参考:

  1. 【oracle dataguard主备库参数文件配置详解】:https://www.cnblogs.com/Elliot-wang/p/3790878.html

目的:

通过实例参数,了解DataGuard相关配置和运行机制。

环境

  • DB_NAME = ORADB
  • Primary DB = ORADB_DG1
  • Standby DB = ORADB_DG2

参数列表

1. DB_NAME

保持同一个Data Guard中所有的DB_NAME相同。

参数主库备库
DB_NAMEORADBORADB
2. DB_UNIQUE_NAME

为每一个数据库指定一个唯一的名称,该参数一经指定就不会发生改动除非DBA主动改动。

参数主库备库
DB_UNIQUE_NAMEORADB_DG1ORADB_DG2
3. LOG_ARCHIVE_CONFIG

用于控制发送归档日志到远程位置、接收远程归档日志,并指定Data Guard配置的惟一数据库名。
默认值为SEND,RECEIVE,NODG_CONFIG。

  • 当设置该参数为SEND时,会激活发送归档日志到远程位置;
  • 当设置该能数为NOSEND时,会禁止发送归档日志到远程位置;
  • 当设置该参数为RECEIVE时,会激活接收远程归档日志;
  • 当设置该参数为NORECEIVE时,会禁止接收远程归档日志;
  • 当设置该参数为DG_CONFIG时,可以最多指定9个惟一数据库名;
  • 当设置该参数为NODG_CONFIG时,会禁止指定惟一数据库名。
参数主库备库
LOG_ARCHIVE_CONFIGDG_CONFIG=(ORADB_DG1 ,ORADB_DG2)DG_CONFIG=(ORADB_DG1 ,ORADB_DG2)
4. LOG_ARCHIVE_DEST_n

LOG_ARCHIVE_DEST_n(从1到10)定义redo文件路径。
该参数必须通过location或service指定归档文件路径。
location表示本地路径,service通常是net service name,即接收redo数据的standby数据库。

参数主库备库
LOG_ARCHIVE_DEST_1location=/data/ora_arch01/ORADB/location=/data/ora_arch01/ORADB/
LOG_ARCHIVE_DEST_2SERVICE=ORADB_DG2 LGWR SYNC AFFIRM REOPEN=15 NET_TIMEOUT=15 VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=ORADB_DG2SERVICE=ORADB_DG1 SYNC LGWR AFFIRM REOPEN=15 NET_TIMEOUT=15 VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=ORADB_DG1
5. LOG_ARCHIVE_DEST_STATE_n

每一个LOG_ARCHIVE_DEST_n都有一个对应的LOG_ARCHIVE_DEST_STATE_n参数,该参数拥有以下4个属性值:

  • ENABLE:默认值,表示允许传输服务;
  • DEFER: 指定对应的log_archive_dest_n参数有效,但暂不使用;
  • ALTERNATE:禁止传输,但是如果其他相关的目的地的连接通通失败,则它将变成enable;
  • RESET:功能与DEFER类似,不过如果传输目的地之前有过错误,它会清除所有错误信息。
参数主库备库
LOG_ARCHIVE_DEST_STATE_1ENABLEENABLE
LOG_ARCHIVE_DEST_STATE_2ENABLEENABLE
6. REMOTE_LOGIN_PASSWORDFILE

将参数设置为EXCLUSIVE,启动密码文件登录。

参数主库备库
REMOTE_LOGIN_PASSWORDFILEEXCLUSIVEEXCLUSIVE
7. LOG_ARCHIVE_FORMAT

确保生成的归档重做日志名称唯一。

参数主库备库
LOG_ARCHIVE_FORMATORADB_%s_%t_%r.arcORADB_%s_%t_%r.arc
8. FAL_CLIENT, FAL_SERVER

当Primary Database的某些日志没有发送到Standby Database 这时候发生归档裂缝(Archive Gap)。
缺失的日志就是裂缝(GAP)。
Data Guard 能够自动检测,解决归档裂缝,不需要DBA的介入。
这需要配置FAL_CLIENT, FAL_SERVER这两个参数。
FAL:Fetch Archive Log
从FAL这个名字可以看出,这个过程是 Standby Database 主动发起的取日志的过程。
Standby Database 就是FAL_CLIENT,它是从FAL_SERVER中取这些GAP。
10g中,这个FAL_SERVER可以是Primary Database,也可以是其他的Standby Database。

FAL_CLIENT和FAL_SERVER两个参数都是Oracle Net Name。
FAL_CLIENT通过网络向FAL_SERVER发送请求。
FAL_SERVER通过网络向FAL_CLIENT发送缺失的日志。
当存在多个Standby Database时,这种传输不一定只有一对连接。
因此 FAL_CLIENT向FAL_SERVER发送请求时,会携带FAL_CLIENT的参数值。
用来告诉FAL_SERVER应该向哪里发送缺少的日志。
FAL_CLIENT参数也是一个Oracle Net Name。事先在FAL_SERVER上定义,让FAL_SERVER可以找到FAL_CLIENT网络地址。

参数主库备库
FAL_CLIENTORADB_DG1ORADB_DG2
FAL_SERVERORADB_DG2ORADB_DG1
9. STANDBY_FILE_MANAGEMENT

如果Primary数据库数据文件发生修改(如新建)则在standby数据库也需要做相应修改(如也新建文件)。

  • 设为AUTO表示自动管理。
  • 设为MANUAL表示需要手工管理,文件重命名修改不会传到standby数据库。
参数主库备库
STANDBY_FILE_MANAGEMENTAUTOAUTO
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值