Cascading has the following restrictions:
Only physical standby databases can cascade redo.
Real-time cascading requires a license for the Oracle Active Data Guard option.
Non-real-time cascading is supported on destinations 1 through 10 only. (Real-time cascading is supported on all destinations.)
A cascading standby database can either cascade redo in real-time (as it is being written to the standby redo log file) or non-real-time (as complete standby redo log files are being archived on the cascading standby).
#
新版本现在支持以实时的模式将 redo 从第一个 standby 数据库传递到 cascaded standby 数据库。因此在第一个 standby 数据库,Redo 的信息会在被写到 Standby Redolog 后立即传递到 cascaded standby 数据库。
而非实时 Cascading 意味着:只有主库的 log Switch 之后,整个 log sequence 才会被传递到最终的 Standby 数据库上。
配置方法:
DGMGRL> edit database sborcl set property redoroutes='(orcl : orcl03 SYNC)';
Error: ORA-16695: a RedoRoutes rule requires asynchronous redo transport mode
Property "logxptmode" updated
DGMGRL> edit database sborcl set property redoroutes='(orcl : orcl03)';
Property "redoroutes" updated
DGMGRL> show configuration;
Configuration - dg_orcl
Protection Mode: MaxPerformance
Members:
orcl - Primary database
sborcl - Physical standby database
orcl03 - Physical standby database (receiving archived redo)
Fast-Start Failover: Disabled
详细信息
Oracle 12c 的 cascading standby 数据库为用户增加了更多的选项。12c 的版本对比以前的版本增加了以下的新选项:
实时 Cascading
Far Sync Standby 数据库
Data Guard Broker 提供对 cascading standby 数据库的支持
但是,你还只能从配置 physical standby 数据库去 cascade 另一个 standby 数据库。 目前 logical standby 数据库还不支持 cascade 另一个 standby 数据库。
实时 Cascading:
新版本现在支持以实时的模式将 redo 从第一个 standby 数据库传递到 cascaded standby 数据库。因此在第一个 standby 数据库,Redo 的信息会在被写到 Standby Redolog 后立即传递到 cascaded standby 数据库。
而非实时 Cascading 意味着:只有主库的 log Switch 之后,整个 log sequence 才会被传递到最终的 Standby 数据库上。
先决条件:
第一个(Cascading)standby 数据库必须是物理的或者是 Far Sync Standby 数据库
必须保证至少在 Cascading standby 数据库上使用 Standby Redolog
Active Data guard 的选项必须是有 license 的
Primary,Cascading,Cascaded standby 数据库的 db_unique_name 必须体现在所有数据库 log_archive_config 的 dg_config 中
设置:
首先 ,创建一个通常的 Dataguard 环境到 cascading standby 数据库。Log 的传输模式应该为 SYNC,同时在 cascading standby 配置 Standby Redolog。在创建完 cascaded standby 数据库以后就可以设置 cascading log 的传输服务了,下面是一些注意事项:
Primary,Cascading,Cascaded standby 数据库的 db_unique_name 必须体现在所有数据库 log_archive_config 的 dg_config 中。
在 Cascading standby 数据库的 log_archive_dest_n 里面设置 ‘valid_for=(STANDBY_LOGFILES,STANDBY_ROLE)’ 的属性来传输给 cascaded(最终)standby 数据库。
你可以通过设置 Log Transport 的模式来切换实时以及非实时的 cascading 模式:
ASYNC = Real-Time Cascading
SYNC = Non Real-Time Cascading
你只可以设置从 log_archive_dest_1 到 log_archive_dest_10 作为非实时模式的目的地,而你可以在 cascading standby 数据库上设置所有的 log_archive_dest_n 作为实时 cascading 的目的地。
Cascading Standby 数据库可以运行在任何保护模式下。
Cascading Standby 数据库可以传输给一个或者多的 terminal standby 数据库。
Cascading Standby 数据库的 FAL_SERVER 应该设置为 primary 库或者是其他的 primary 直接连接的 standby 数据库。
Terminal Standby 数据库的 FAL_SERVER应该设置 cascading Standby 数据库或者 Primary 数据库。
Far Sync Standby 数据库:
Far Sync Standby 数据库对于 Terminal standby 数据库来说是作为一个 RedoLog repository 数据库的作用。他不含有任何的数据文件。Far Sync Standby 数据库只是启动了 Log 传输服务。Far Sync Standby 数据库的优点是它可以作为 Primary 数据库的一个在最大保护模式下的本地的 ArchiveLog Repository,而 Physical 和 logical standby 数据库可以运行在远端,请参考文档:
Note 1565071.1: Data Guard 12c New Feature: Far Sync Standby
来了解具体的关于 Far Sync Standby 数据库内容以及设置的步骤。
Data Guard Broker 和 Cascaded Standby 数据库:
Data Guard Broker 有一个新的‘RedoRoutes’的属性可以用来构建和部署 cascaded Data Guard Broker 的配置。 以下是它的格式:
RedoRoutes = ‘( : )’
Redo Source: Redo 的来源,他可以是 db_unique_name 或者是一个本地数据库名别名的 ‘LOCAL’-Keyword(不能被 Far Sync Standby 数据库使用)
Redo Destination: Redo 从这个数据库传输到的目的地。他可以是一个或者多个(用逗号分开)db_unique_name 或者是代表所有在 Data Guard Broker 配置中可能目的地的别名的‘ALL’-Keyword。 你可以设置到目的地的传输的模式。包括以下:
SYNC: 等同于 log_archive_dest_n 中的属性 ‘SYNC AFFIRM’ 或者是非实时 Cascade
ASYNC: 等同于 log_archive_dest_n 中的属性 ‘ASYNC’ 或者是 实时 Cascade
FASTSYNC : 等同于 log_archive_dest_n 中的属性 ‘SYNC NOAFFIRM’
例子:
注意: 以下的图片和/或文档内容里,所使用的用户信息和环境数据来自于Oracle Sample Schema(s),随着数据库产品而有的公开文档,或者其它培训资料中虚构出来的。
出现了任何与实际的环境,实际的人员(无论其活着或者去世)相似的情况,都纯属巧合,而非有意为之。
Primary Database: prim
Cascading Standby Database: local_stdby
Cascaded (terminal) Standby Database: remote_stdby
如果想实现’SYNC NOAFFIRM’的本地 standby 数据库和在实时 cascade 模式下的远程 standby 数据库,设置如下:
Primary Database (prim)
RedoRoutes = ‘(LOCAL : local_stdby FASTSYNC)’
-> Primary 数据库只传送 Redo 到 local Standby 数据库,但是有到远程 standby 数据库的 Archive 目的地。
Local Standby Database (local_stdby)
RedoRoutes = ‘(prim : remote_stdby ASYNC)’
-> 这里需要配置来源于 ‘prim’的 REDO 是以实时 cascade(ASYNC)的方式转发到远程的 Standby 数据库
12c 的 Cascaded Standby 数据库 (Doc ID 2179701.1)