在Oracle11.2.0.2版本后,dataguard支持级联模式传输日志,即日志传输可以从A到B,B到C,B到D,等等,无穷无尽
cascading standby可以分担主库传输日志到多个备库的压力。
一个cascading standby可以传输日志到多达30个standby库,这些库可以使物理standby,逻辑standby,快照standby中的任意一种。
cascading standby会有一定的延迟,因为cascading的动作并不是主库发出的,而是cascading standby库收到主库日志后,本地归档了standby日志,日志才能级联发送到其他standby库,对于前面提到的日志可以从A到B,B到C,B到D,这个cascading standby库就是B库,cascade standby库指C,D。
cascading standby配置思路:
1.选择一个物理备库准备配置cascading standby
2.cascading standby的FAL_SERVER指向主库或者直接从主库接收日志的standby库
3.cascading standby配置LOG_ARCHIVE_DEST_n的SERVICE指向要级联传输日志的standby库,VALID_FOR参数写(STANDBY_LOGFILES,STANDBY_ROLE),
SYNC或者ASYNC参数将被忽略。
4.在cascaded standby库,FAL_SERVER指向cascading standby或者直接从主库得到日志的其他standby。当然,cascaded standby库的FAL_SERVER也可以指向主库,那么它将被当做cascading standby对待。
5.下面的配置实例,主库是boston, 物理备库boston2(cascading standby),物理备库denver(cascaded standby)
5.1.Primary Database
———————————————————-
DB_UNIQUE_NAME=boston
FAL_SERVER=boston2
LOG_ARCHIVE_CONFIG=’DG_CONFIG=(boston,boston2,denver)’
LOG_ARCHIVE_DEST_1=’LOCATION=USE_DB_RECOVERY_FILE_DEST
VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=boston’
LOG_ARCHIVE_DEST_2=’SERVICE=boston2 SYNC
VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=boston2′
5.2.Cascading Physical Standby Database
———————————————————-
DB_UNIQUE_NAME=boston2
FAL_SERVER=boston
LOG_ARCHIVE_CONFIG=’DG_CONFIG=(boston,boston2,denver)’
LOG_ARCHIVE_DEST_1=’LOCATION= USE_DB_RECOVERY_FILE_DEST
VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=boston2′
LOG_ARCHIVE_DEST_2= ‘SERVICE=denver
VALID_FOR=(STANDBY_LOGFILES,STANDBY_ROLE) DB_UNIQUE_NAME=denver’
5.3.Cascaded Physical Standby Database
———————————————————-
DB_UNIQUE_NAME=denver
FAL_SERVER=boston2
LOG_ARCHIVE_CONFIG=’DG_CONFIG=(boston,boston2,denver)’
LOG_ARCHIVE_DEST_1=’LOCATION= USE_DB_RECOVERY_FILE_DEST
VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=denver’