参考
3.1 准备主库初始化参数
http://space.itpub.net/11417069/viewspace-684347
看到在PUB上有人提问:
==================================
dataguard: 一个primary,配置两个standby疑问
配置两个standby的话,参数log_archive_XX,FAL_CLIENT,FAC_SERVER等参数在standby在怎么设置呢?和配置一个standby一样吗?
primary传送archived log到两个standby中的任意一个吗?还是两个都要传送,如果只传送到一个成功后,那另外一个是不是要到第二个standby中去取呢?这样会缓解primary的压力。希望大家能给点帮助
=================================
根据做过的项目,尝试去解答:
一个主库最多可以配置9个DATAGUARD。配置多个备库的方式和配置一个备库差不多是一样的。
0) 配置TNSNAME,让主库可以正确解释备库的TNSNAMES;备库可以解释主库的TNSNAMES;
1)在备库上设置STANDBY LOG 的目录。
STANDBY_ARCHIVE_DEST = ’/u01/oracle/oradata/archive’
2) 在主库上配置LOG_ARCHIVE_DEST_n 参数
LOG_ARCHIVE_DEST_2 = 'SERVICE=payroll2 OPTIONAL REOPEN=180'
如果有多个备库,那分别去设置LOG_ARCHIVE_DEST_3, LOG_ARCHIVE_DEST_4。
注意:LOG_ARCHIVE_DEST_1最好设置为主库本地的归档日志路径。
这里没有去解释DESTINACTION 的依赖关系。也就是每个备库都有独立的归档日志,都不依赖其他的备库。
3) 设置FAL_CLIENT,FAC_SERVER 参数。
FAL_CLIENT,FAC_SERVER 参数的作用。这是ORACLE 文档上的原话,
You can set initialization parameters so that log apply services automatically identify and resolve archive gaps as they occur on a physical standby database. Define the FAL_CLIENT and FAL_SERVER initialization parameters only for physical standby databases in the initialization parameter file:
也就是说后台进程解决日志的gap问题 。
在STANTBY上配置,FAL_CLIENT 指向备库的TNSNAME, FAL_SERVER指向 主库的TNSNAME。
4) 至于从主库上传输一个还是多个日志到备库,那需要看备库上的方案设置。
如果备库共享日志文件,那只要传输一个就可以了。
如果备库使用独立的日志文件,那就要传输多个日志。
5) 如果要从其他备库(假设为SERVER-B) 上去取日志文件,那需要配置:
在主库上,不要配置该备库(SERVER-A)的LOG_ARCHIVE_DEST。
在该备库(SERVER-A)上配置 FAL_SERVER为 SERVER-B的tnsnames。
在SERVER-B 上,设定 SERVER-A 的tnnames。 http://space.itpub.net/40239/viewspace-573126
主库
remote_login_passwordfile='EXCLUSIVE'
{"D%s~H0log_archive_config='DG_CONFIG=(WENDING,PHYSTDBY,LOGSTDBY)'ITPUB个人空间8yDy~-Zl"Fxw/V7^?0j
log_archive_dest_1='LOCATION=/orahome/arch/WENDING VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=WENDING'
3|3twtv#K