远程同步备用数据库
远程同步备用数据库是一个级联备用数据库,充当终端数据库的重做日志存储库。
它不包含任何数据文件。
只有日志传输服务在远程同步备用数据库上处于活动状态。
远程同步备用数据库的优势在于它可以是主数据库的本地存档日志存储库,在最大保护模式下运行,物理或者逻辑备用数据库可以位于远程站点上。
这篇博文解释了 Oracle 12c 中级联备用数据库的增强功能。
在 Oracle 12c 中有级联备用数据库的新可能性。
Oracle 12c 和以前版本之间的主要区别是:
- 实时级联
- 远程同步备用数据库
- Data Guard Broker 现在支持级联备用数据库
但是,我们仍然只能从物理备用数据库级联备用数据库。
不支持从逻辑备用数据库级联备用数据库。
Data Guard Broker 和级联备用数据库
有一个名为“RedoRoutes”的新 Data Guard Broker 属性用于构建和实现级联 Data Guard Broker 配置。
它具有以下格式:
RedoRoutes = '([Redo Source] : [Redo Destination])'
重做源:这是重做来自的源。
它可以是 db_unique_name 或者“LOCAL”-Keyword,它是本地数据库名称的别名(不能用于远程同步备用数据库)。
重做目标:这是从该数据库运送重做的目标。
它可以是一个或者多个(逗号分隔的)db_unique_name 或者“ALL”-Keyword,它是 Data Guard Broker 配置中所有可能目的地的别名。
可选地,我们还可以指定要用于目标的传输方法。
这可以是:
- SYNC :对应于 log_archive_dest_n 属性“SYNC AFFIRM”或者非实时级联。
- ASYNC :对应于 log_archive_dest_n 属性“ASYNC”或者实时级联。
- FASTSYNC :对应于 log_archive_dest_n 属性“SYNC NOAFFIRM”。
例子:
出于本文的目的,以下环境用作示例来描述该过程:
Primary Database: prim Cascading Standby Database: local_stdby Cascaded (terminal) Standby Database: remote_stdby
我们希望使用“SYNC NOAFFIRM”为本地备用数据库和实时级联模式的远程备用数据库提供服务。
所以设置将是:
主数据库(prim):
RedoRoutes = '(LOCAL : local_stdby FASTSYNC)'
因此,主数据库仅将重做传送到本地备用数据库,但具有到远程备用数据库的存档目的地。
本地备用数据库(local_stdby):
RedoRoutes = '(prim : remote_stdby ASYNC)'
在这里,我们配置来自“prim”的重做以实时级联 (ASYNC) 方式转发到远程备用数据库。
实时级联
现在可以在实时模式下将重做从第一个转发到级联备用数据库。
因此,一旦将重做记录写入第一个备用数据库的备用重做日志中,就会将重做记录转发到级联备用数据库。
非实时级联意味着整个日志序列在主数据库上的日志切换后传输到终端备用数据库。
准备工作
- 第一(级联)备用数据库必须是物理或者远程同步备用数据库
- 备用重做日志必须就位并至少在级联备用数据库上使用
- Active Data Guard Option 必须获得许可
- 主数据库、级联数据库和级联备用数据库 db_unique_name 必须存在于所有数据库的 log_archive_config 的 dg_config 中
设置
首先,像往常一样为级联备用数据库设置Data Guard Environment。
日志传输方法应为“SYNC”,并且必须在级联备用数据库上配置备用重做日志。
创建级联备用数据库后,我们现在可以设置级联日志传输服务。
以下是正确设置的一些提示:
主数据库、级联数据库和级联备用数据库 db_unique_name 必须存在于所有数据库的 log_archive_config 的 dg_config 中。
在级联备用数据库上设置 log_archive_dest_n 以使用属性“valid_for=(STANDBY_LOGFILES,STANDBY_ROLE)”为级联(终端)备用数据库提供服务
我们可以使用日志传输方法在实时和非实时级联之间切换。
ASYNC = Real-Time Cascading SYNC = Non Real-Time Cascading
我们只能将 log_archive_dest_1 直到 log_archive_dest_10 用于非实时级联目标,其中所有 log_archive_dest_n 都可用于级联备用数据库上的实时级联。
级联待机可以处于任何保护模式。
一个级联备用数据库可以服务于一个或者多个终端备用数据库。
级联备用数据库上的 FAL_SERVER 应设置为主数据库或者直接由主数据库提供服务的任何其他备用数据库。
终端备用数据库上的FAL_SERVER应设置为级联备用数据库或者主数据库。