要理解这句话,我们看看LOG_ARCHIVE_DEST_n 的语法:
LOG_ARCHIVE_DEST_[1
| 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10] =
{ null_string |
{ LOCATION=path_name | SERVICE=service_name }
[ MANDATORY ]
[ REOPEN[=seconds] ]
[ DELAY[=minutes] ]
[ NOREGISTER ]
[ TEMPLATE=template ]
[ ALTERNATE=destination ]
[ DEPENDENCY=destination ]
[ MAX_FAILURE=count ]
[ SYNC | ASYNC ]
[ AFFIRM | NOAFFIRM ]
[ NET_TIMEOUT=seconds ]
[ VALID_FOR=(redo_log_type,database_role) ]
[ DB_UNIQUE_NAME ]
[ MAX_CONNECTIONS=count ]
[ COMPRESSION={ENABLE|DISABLE} ]
}
其中有一项[ ALTERNATE=destination ], 依照(http://www.itpub.net/viewthread.php?tid=512491) 中的例子,就很好理解了。
log_archive_dest
_3='SERVICE=path1 NOREOPEN ALTERNATE=LOG_ARCHIVE_DEST_4'
log_archive_dest _4='SERVICE=path2 NOREOPEN OPTIONAL'
log_archive_dest_state_3=ENABLE
log_archive_dest_state_4=ALTERNATE
平时dest4是不生效的,只有dest3因一些问题(网络、目录满)失效时dest4才生效。
那什么时候才算失效呢? 参考《Oracle Dataguard Handbook》一书节选(http://www.dba-oracle.com/t_oracledataguard_187_archiving_failed_.htm) 中,如果设置了
REOPEN和 MAX_FAILURE属性, 除非尝试了MAX_FAILURE说明的次数还失败后,这个备选归档路径才会使用。