oracle dataguard主备库参数文件配置详解

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了oracle dataguard主备库参数文件配置详解相关的知识,希望对你有一定的参考价值。

主库参数详解:?

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

DB_NAME=ora11g??#为一个数据库指定一个唯一的名称,该参数一经指定就不会发生改动除非DBA主动改动所以在Oracle?10g中引入DB_UNIQUE_NAME
DB_UNIQUE_NAME=ora11g_primary????#定义数据库唯一名称,因为DB_NAME参数对于物理数据库是必须相同,对于逻辑数据库必须不同,参数来确定DataGuard配置中
??????????????????????????????#的每个数据库,如果未定义该参数,默认使用DB_NAME参数值。dataguard中该参数必须配置不同。

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

? ? ? ? 当设置该参数为SEND时,会激活发送归档日志到远程位置;

? ? ? ? 当设置该能数为NOSEND时,会禁止发送归档日志到远程位置;

? ? ? ? 当设置该参数为RECEIVE时,会激活接收远程归档日志;

? ? ? ? 当设置该参数为NORECEIVE时,会禁止接收远程归档日志;

? ? ? ? 当设置该参数为DG_CONFIG时,可以最多指定9个惟一数据库名;

? ? ? ? 当设置该参数为NODG_CONFIG时,会禁止指定惟一数据库名。

LOG_ARCHIVE_CONFIG=‘DG_CONFIG=(ora11g_primary?,ora11g_standby)‘????#定义DataGuard配置的有效DB_UNIQUE_NAME参数列表,名称顺序不做要求
LOG_ARCHIVE_DEST_1=‘LOCATION=/u01/app/oracle/archive?VALID_FOR=(ALL_LOGFILES,ALL_ROLES)?DB_UNIQUE_NAME=ora11g_primary‘????#指定本地归档的路径
LOG_ARCHIVE_DEST_2=‘SERVICE=ora11g_standby?LGWR?ASYNC?VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE)?DB_UNIQUE_NAME=ora11g_standby‘#指定远端备库的归档路径

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

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

ENABLE:默认值,表示允许传输服务

DEFER: 指定对应的log_archive_dest_n参数有效,但暂不使用

ALTERNATE:禁止传输,但是如果其他相关的目的地的连接通通失败,则它将变成enable

RESET:功能与DEFER类似,不过如果传输目的地之前有过错误,它会清除所有错误信息

LOG_ARCHIVE_DEST_STATE_1=ENABLELOG_ARCHIVE_DEST_STATE_2=ENABLE?


REMOTE_LOGIN_PASSWORDFILE=EXCLUSIVE???#远程登录设置独享模式(注意保证主备库密码相同)
?LOG_ARCHIVE_FORMAT=%t_%s_%r.arc

当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 NameFAL_CLIENT通过网络向FAL_SERVER发送请求,FAL_SERVER通过网络向FAL_CLIENT发送缺失的日志但是这两个连接不一定是一个连接。因此 FAL_CLIENT向FAL_SERVER发送请求时,会携带FAL_CLIENT的参数值,用来告诉FAL_SERVER应该向哪里发送缺少的日志。这个参数也是一个Oracle Net Name 这个Name在FAL_SERVER上定义的,用来指向FAL_CLIENT

FAL_SERVER=ora11g_standby
FAL_CLIENT=ora11g_primary

如果Primary数据库数据文件发生修改(如新建)则在standby数据库作相应修改

设为AUTO表示自动管理。设为MANUAL表示需要手工管理(注:重命名修改

是不会传到standby数据库)

STANDBY_FILE_MANAGEMENT=AUTO


主库参数?


DB_NAME=ora11g
DB_UNIQUE_NAME=ora11g_primary
LOG_ARCHIVE_CONFIG=‘DG_CONFIG=(ora11g_primary?,ora11g_standby)‘???
LOG_ARCHIVE_DEST_1=‘LOCATION=/u01/app/oracle/archive?VALID_FOR=(ALL_LOGFILES,ALL_ROLES)?DB_UNIQUE_NAME=ora11g_primary‘
LOG_ARCHIVE_DEST_2=‘SERVICE=ora11g_standby?LGWR?ASYNC?VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE)?DB_UNIQUE_NAME=ora11g_standby‘
LOG_ARCHIVE_DEST_STATE_1=ENABLE
LOG_ARCHIVE_DEST_STATE_2=ENABLE
REMOTE_LOGIN_PASSWORDFILE=EXCLUSIVE
LOG_ARCHIVE_FORMAT=%t_%s_%r.arc
FAL_SERVER=ora11g_standby
FAL_CLIENT=ora11g_primary
STANDBY_FILE_MANAGEMENT=AUTO


备库参数?

DB_NAME=ora11g
DB_UNIQUE_NAME=ora11g_standby?
LOG_ARCHIVE_CONFIG=‘DG_CONFIG=(ora11g_primary?,ora11g_standby)‘???
LOG_ARCHIVE_DEST_1=‘LOCATION=/u01/app/oracle/archive?VALID_FOR=(ALL_LOGFILES,ALL_ROLES)?DB_UNIQUE_NAME=ora11g_standby‘
LOG_ARCHIVE_DEST_2=‘SERVICE=ora_primary?LGWR?ASYNC?VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE)?DB_UNIQUE_NAME=ora11g_primary‘
LOG_ARCHIVE_DEST_STATE_1=ENABLE
LOG_ARCHIVE_DEST_STATE_2=ENABLE
REMOTE_LOGIN_PASSWORDFILE=EXCLUSIVE
LOG_ARCHIVE_FORMAT=%t_%s_%r.arc
FAL_SERVER=ora11g_primary
FAL_CLIENT=ora11g_standby
STANDBY_FILE_MANAGEMENT=AUTO


以上是关于oracle dataguard主备库参数文件配置详解的主要内容,如果未能解决你的问题,请参考以下文章

Dataguard主备库切换方法总结

Oracle dataguard 备库归档日志不全.怎么恢复

Oracle11g搭建DataGuard及主备切换方法总结亲测可用

Oracle Dataguard HA (主备,灾备)方案部署调试

Oracle 11.2.0.4.0 Dataguard部署和日常维护 - Dataguard Flashback

Oracle12cR1 Data Guard 实施文档