12c 的 Cascaded Standby 数据库 (文档 ID 2179701.1)

文档内容


用途

详细信息
  实时 Cascading:
  先决条件:
  设置:
  Far Sync Standby 数据库:
  Data Guard Broker 和 Cascaded Standby 数据库:

参考


适用于:

Oracle Database - Enterprise Edition - 版本 12.1.0.1 和更高版本
本文档所含信息适用于所有平台
***Checked for relevance on 13-Jul-2015***

用途

 这篇文档解释了 Cascaded Standby 在 oracle 12c 上的增强特性。

详细信息

 

Oracle 12c 的 cascading standby 数据库为用户增加了更多的选项。12c 的版本对比以前的版本增加了以下的新选项:

 

  1. 实时 Cascading
  2. Far Sync Standby 数据库
  3. 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’

 

 

例子:

 

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 数据库。

 

 

参考

NOTE:1565071.1 - Data Guard 12c New Feature: Far Sync Standby
请使用浏览器的分享功能分享到微信等