Oracle 12c DG新特性 - Active Data Guard Far Sync (Doc ID 2179719.1)

0    123    1

Tags:

👉 本文共约16560个字,系统预计阅读时间或需63分钟。

img

imgData Guard 12C 新特性:Far Sync Standby (Doc ID 2179719.1)


文档内容

目标
解决方案
创建一个远程同步备用实例
Data Guard Broker 和远程同步备用数据库
White paper
参考

适用于:

Oracle Database Cloud Schema Service - 版本 N/A 和更高版本
Oracle Database Exadata Cloud Machine - 版本 N/A 和更高版本
Oracle Cloud Infrastructure - Database Service - 版本 N/A 和更高版本
Oracle Database Backup Service - 版本 N/A 和更高版本
Oracle Database Exadata Express Cloud Service - 版本 N/A 和更高版本
本文档所含信息适用于所有平台
Checked for relevance on 13-Jul-2015

目标

本文的目的是介绍新的备库类型 Far Sync Standby。

解决方案

远程同步备用数据库是一个级联备用数据库充当一个重做日志库的终端数据库。它不包含任何数据文件。远端同步备用数据库上只有日志传输服务。远端同步备用数据库的好处是,它可以在本地服务器运行,并且以最大可用模式运行,物理或逻辑备库就可以运行在远程站点。

创建一个远程同步备用实例

配置 Far Sync Standby 时,准备环境与物理备库的环境相同,请参阅:

Note 1475344.1 Creating a Physical Standby Database on Oracle 11.2.0.x

-> 准备环境和备用实例

例如:

在主数据库创建一个 Far Sync Standby 控制文件,并使用该控制文件挂载远程同步实例:

SQL> alter database create far sync instance controlfile as ‘’;

然后,您可以设置日志运输服务的级联备库,方法与普通的级联备用数据库相同。

.

Data Guard Broker 和远程同步备用数据库

Data Guard Broker 支持 Far Sync Standby 和级联备用数据,您可以通过添加远程同步备用到您的 Data Guard Broker 的配置中:

DGMGRL> add far_sync as connect identifier is ;

然后相应的设置 Data Guard Broker 属性“RedoRoutes”。您可以在下面的文档中找到关于“RedoRoutes”的说明:

Note 1542969.1 Cascaded Standby Databases in Oracle 12c

White paper

Oracle Active Data Guard Far Sync 数据零丢失

References

参考

NOTE:1475344.1 - Creating a Physical Standby Database
NOTE:1578787.1 - 12c Data guard Switchover Best Practices using SQLPLUS
NOTE:1582837.1 - 12c Dataguard Switchover Best Practices using DGMGRL(Dataguard Broker Command Prompt)



*在 12c 上配置 Create Dataguard Broker - DGMGRL (Doc ID 2102854.1)*

文档内容

目标
解决方案
Dataguard Broker Supports Far/Fast SYNC Standby
参考

适用于:

Oracle Database - Enterprise Edition - 版本 12.1.0.1 到 12.1.0.1 [发行版 12.1]
Oracle Database Exadata Cloud Machine - 版本 N/A 和更高版本
Oracle Cloud Infrastructure - Database Service - 版本 N/A 和更高版本
Oracle Database Cloud Exadata Service - 版本 N/A 和更高版本
Oracle Database Exadata Express Cloud Service - 版本 N/A 和更高版本
本文档所含信息适用于所有平台

目标

Goal

本文档提供了逐步创建代理配置的方法。

注意:在下面的图像和/或文档内容中,所使用的用户信息和环境数据表示来自Oracle示例模式,随Oracle数据库产品一起提供的公共文档或其他培训材料的虚拟数据。 与实际环境的任何相似之处,纯属巧合,绝不以任何方式提供。

为了本文档的目的,以下虚拟环境用作描述此过程的示例:

Dg configuration : 12c
Primary db_unique_name : boston
Standby db_unique_name : chicago

Solution

解决方案

1.先决条件,

启动Dataguard broker DMON流程.

在Primary 和 Standby,

SQL> alter system set dg_broker_start=true sid='*';

\2. 连接到 DGMGRL

Primary,

$dgmgrl
DGMGRL>连接 sysdg
password: *****

\3. 创建配置,

DGMGRL> create configuration '' AS PRIMARY DATABASE IS '' CONNECT IDENTIFIER IS ;

ex,

DGMGRL> create configuration '12c' AS PRIMARY DATABASE IS 'boston' as connect identifier is boston;

NOTE : 如果创建配置失败并显示ORA-16698 请参考
Note 1582179.1: Create Configuration Failing with ORA-16698

校验配置,

DGMGRL> show configuration;

Configuration - 12c

保护模式: MaxPerformance
Databases:

Databases:
boston - Primary database

Fast-Start Failover: DISABLED

Configuration Status:
DISABLED

\4. 添加 Standby,

DGMGRL> add database as connect identifier is ;

举例:
DGMGRL> add database chicago as connect identifier is chicago;

DGMGRL> show configuration;

Configuration - 12c

Protection Mode: MaxPerformance
Databases:
boston - Primary database

Databases:
boston - Primary database
chicago - Physical standby database

Fast-Start Failover: DISABLED

Configuration Status:
DISABLED

\5. 启动配置,

DGMGRL> enable configuration;

\6. 校验配置,

DGMGRL> show configuration;

Configuration - 12c

Protection Mode: MaxPerformance
Databases:
boston - Primary database
chicago - Physical standby database

Fast-Start Failover: DISABLED

Configuration Status:
SUCCESS

DGMGRL> show database boston;

Database - boston

Role: PRIMARY

Intended State: TRANSPORT-ON
Instance(s):
boston

Database Status:
Database Status:
SUCCESS

DGMGRL> show database chicago;

Database - chicago

Role: PHYSICAL STANDBY

Intended State: APPLY-ON

Transport Lag: 0 seconds (computed 1 second ago)

Apply Lag: 0 seconds (computed 1 second ago)

Apply Rate: 2.54 MByte/s
Real Time Query: ON
Instance(s):
chicago

Database Status:
SUCCESS

记录在二进制文件中的Data Guard配置详细信息,

SQL> show parameter config

NAME TYPE VALUE


dg_broker_config_file1 string /u01/app/oracle/product/12.1.0

​ /dbhome_1/dbs/dr1boston.dat

dg_broker_config_file2 string /u01/app/oracle/product/12.1.0

​ /dbhome_1/dbs/dr2boston.dat

span>

Dataguard Broker Supports Far/Fast SYNC Standby

FSFO supports Far sync standby.

DGMGRL>add far_sync as connect identifier is ;
DGMGRL>enable far_sync ;

编辑ar sync instance 属性,

DGMGRL>EDIT FAR_SYNC far_sync_instance_name SET/RESET PROPERTY property-name;

Fast SYNC Standby

DGMGRL>edit database set property Logxptmode = ‘FastSync’;

使用SYNC NOAFFIRM配置REDO传输

References

Document : :1582179.1 - Create Configuration Failing with ORA-16698

参考

NOTE:1582179.1 - Create Configuration Failing with ORA-16698

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

文档内容

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

适用于:

Oracle Database - Enterprise Edition - 版本 12.1.0.1 和更高版本
Oracle Database Cloud Schema Service - 版本 N/A 和更高版本
Oracle Database Exadata Cloud Machine - 版本 N/A 和更高版本
Oracle Cloud Infrastructure - Database Service - 版本 N/A 和更高版本
Oracle Database Cloud Exadata Service - 版本 N/A 和更高版本
本文档所含信息适用于所有平台
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



Orcle 12c DG 新特性---Far Sync

1 说明

An Oracle Data Guard far sync instance is a remote Oracle Data Guard destination that accepts redo from the primary database and then ships that redo to other members of the Oracle Data Guard configuration. A far sync instance manages a control file, receives redo into standby redo logs (SRLs), and archives those SRLs to local archived redo logs, but that is where the similarity with standbys ends. A far sync instance does not have user data files, cannot be opened for access, cannot run redo apply, and can never function in the primary role or be converted to any type of standby database.

Active Data Guard Far Sync 是 Oracle 12c 的新特性(也称为 Far Sync Standby ), Far Sync 功能的实现是通过在距离主库 (Primary Database) 相对较近的地点配置 Far Sync 实例,主库 (Primary Database) 同步 (synchronous) 传输 redo 到 Far Sync 实例,然后 Far Sync 实例再将 redo 异步 (asynchronous) 传输到终端备库 (Standby Database) 。这样既可以保证零数据丢失又可以降低主库压力。 Far Sync 实例只有密码文件, init 参数文件和控制文件,而没有数据文件。所以无法打开用于访问。

Far Sync 配置对于 Data Guard 角色转换 (role transitions) 是透明的,即 switchover/failover 命令方式与 12c 之前相同。

2 实验-Far Sync 安装配置

创建Far Sync 实例类似于创建物理备库,但数据文件在 Far Sync 实例中不存在。因此不需要拷贝数据文件并还原数据文件。一旦 Far Sync 实例创建了,那么就默认运行在 Maximum Availability 模式,那么 REDO 是实时同步传输的。

2.1 主库配置和操作

2.1.1 创建Far Sync 实例的控制文件

将上面生成的Far Sync 的控制文件拷贝到 Far Sync 所在的主机上。

2.1.2 修改配置,指向Far Sync 实例

2.2 备库修改配置

2.3 Far Sync 实例配置

2.3.1 修改PFILE

cndba_s 是物理备库, cndba_far_sync 是 Far Sync 实例的 DB_UNIQUE_NAME 。如果日志文件路径需要修改,也要修改 DB_FILE_NAME_CONVERT 和 LOG_FILE_NAME_CONVERT 。

2.3.2 将Far Sync 实例启动到 mount

2.3.3 查看Far Sync 实例状态

2.3.4 创建standby redo log( 可选,最好创建 )

语法:

2.4 主备库和Far Sync 添加 TNSNAME

2.5 检查配置

从上面可以看出,配置没有问题。

Cndba_p -> cndba_far_sync -> cndba_s

2.6 测试日志是否正常传输

-- 查看当前日志序列号

主库:

Far Sync 实例 :

备库:

-- 手动切换日志

-- 再次查看备库和 Far Sync 实例的日志序列号

至此搭建Far Sync 结束了。

3 总结

\1. 由于Far Sync 存在单点故障,所以建议搭建两个及以上的 Far Sync 实例。默认只启用其中一个,只有当一个挂掉了,才会自动启用另一个。

\2. 主库建议配置一个备用的LOG_ARCHIVE_DEST_3 ,直接指向备库。在 LOG_ARCHIVE_DEST_2 不可用时,会启用 LOG_ARCHIVE_DEST_3 直接传输 redo 到备库。

\3. Far Sync 可大大减少主库的压力,特别是在一主多备的情况下。

\4. switchover/failover 对于 Far Sync 是透明的,不需要特殊配置,按正常切换即可。

更多详细信息,请参考:

概述

================

Active Data Guard Far Sync是Oracle 12c的新功能(也称为Far Sync Standby),Far Sync功能的实现是通过在距离主库(Primary Database)相对较近的地点配置Far Sync实例,主库(Primary Database) 同步(synchronous)传输redo到Far Sync实例,然后Far Sync实例再将redo异步(asynchronous)传输到终端备库(Standby Database)。这样既可以保证零数据丢失又可以降低主库压力。Far Sync实例只有密码文件,init参数文件和控制文件,而没有数据文件。

如果redo 传输采用Maximum Availability模式,我们可以在距离生产中心(Primary Database)相对较近的地点配置Far Sync实例,主库(Primary Database)同步(synchronous)传输redo到Far Sync实例,保证零数据丢失(zero data loss),同时主库和Far Sync距离较近,网络延时很小,因此对主库性能影响很小。然后Far Sync实例再将redo异步(asynchronous)发送到终端备库(Standby Database)。

如果redo 传输采用Maximum Performance模式,我们可以在距离生产中心(Primary Database)相对较近的地点配置Far Sync实例,主库(Primary Database) 异步传输redo到Far Sync实例,然后Far Sync实例再负责传输redo到其他多个终端备库(Standby Database)。这样可以减少主库向多个终端备库(Standby Database)传输redo的压力(offload)。

Far Sync配置对于Data Guard 角色转换(role transitions)是透明的,即switchover/failover命令方式与12c之前相同。

考虑到可能发生Data Guard 角色转换,即switchover/failover,可以在距离备库较近的地方也配置Far Sync实例,这个Far Sync实例只有在当前的备库切换为主库后才启用。

考虑到Far Sync实例的单点故障,可以在距离主库交近的地点配置2个Far Sync实例,起到备用的作用。

本文重点是测试Far Sync安装配置。

Far Sync示意图

================ img


Oracle 12c Active Data Guard Far Sync 详细搭建过程

Active Far Sync是 12c的新功能(也称为Far Sync Standby),Far Sync功能的实现是通过在距离主库(Primary Database)相对较近的地点配置Far Sync实例,主库(Primary Database) 同步(synchronous)传输redo到Far Sync实例,然后Far Sync实例再将redo异步(asynchronous)传输到终端备库(Standby Database)。这样既可以保证零数据丢失又可以降低主库压力。Far Sync实例只有密码文件,init参数文件和控制文件,而没有数据文件。

如果redo 传输采用Maximum Availability模式,我们可以在距离生产中心(Primary Database)相对较近的地点配置Far Sync实例,主库(Primary Database)同步(synchronous)传输redo到Far Sync实例,保证零数据丢失(zero data loss),同时主库和Far Sync距离较近,网络延时很小,因此对主库性能影响很小。然后Far Sync实例再将redo异步(asynchronous)发送到终端备库(Standby Database)。

如果redo 传输采用Maximum Perfo ce模式,我们可以在距离生产中心(Primary Database)相对较近的地点配置Far Sync实例,主库(Primary Database) 异步传输redo到Far Sync实例,然后Far Sync实例再负责传输redo到其他多个终端备库(Standby Database)。这样可以减少主库向多个终端备库(Standby Database)传输redo的压力(offload)。

Far Sync配置对于Data Guard 角色转换(role transitions)是透明的,即switchover/failover命令方式与12c之前相同。

考虑到可能发生Data Guard 角色转换,即switchover/failover,可以在距离备库较近的地方也配置Far Sync实例,这个Far Sync实例只有在当前的备库切换为主库后才启用。

考虑到Far Sync实例的单点故障,可以在距离主库交近的地点配置2个Far Sync实例,起到备用的作用。

本文重点是测试Far Sync安装配置。

Far Sync 实例1 和 Far Sync 实例2 位于距离主库(Primary Database) 相对较近的地点,主库(PrimaryDatabase) 同步传输redo 到 Far Sync 实例 1 ,实现零数据丢失。 Far Sync 实例2 是备用实例,当 Far Sync 1 不可用时, Far Sync2 继续提供服务,达到高可用性。 Far Sync 实例异步传输redo 到远端的多个终端备库(Standby Database) , Far Sync 实例分担了主库传输 redo 的压力。

注:可以在距离终端备库 (Standby Database) 较近的地点配置 Far Sync 实例, 这个 Far Sync 实例只有在当前的备库切换为主库后才启用,本图中没有描述 。

图片.png

创建active data guard方式与11.2相同,详细过程请参考

或者你可以直接访问:

下面只列出系统概述:

角色主库(Primary Database)Far Sync实例备库(Standby Database)
地点生成中心距离生成中心较劲的灾备中心距离生成中心较远的灾备中心
IP地址192.168.0.30192.168.0.202192.168.0.98
DB_UNIQUE_NAMEorclorclfsorcls
数据库版本12.2.0.1.012.2.0.1.012.2.0.1.0

备注:下面所有操作都是基于 le12c 的data guard 详细搭建过程》 中的环境。

Ø 创建Far Sync实例的控制文件,在主库上执行:

SQL> alter database create far sync instance controlfile as '/tmp/controlfs01.ctl';

Database altered.

Ø 创建Far Sync实例的pfile文件,在主库上执行:

SQL> create pfile='/tmp/initorclfs. ' from spfile;

File created.

Ø 将上面的控制文件和参数文件以及密码文件复制到Far Sync实例所在的服务器上:

orcl:/tmp@primary>scp initorclfs.ora controlfs01.ctl 192.168.0.98:/tmp

orcl: /u01/app/oracle/product/12.2.0/db_1/dbs>scp orapworcl 192.168.0.98:$ORACLE_HOME/dbs

Ø 在Far Sync服务器上将刚才传过来的密码文件重命名

orclfs:/u01/app/oracle/product/12.2.0/db_1/dbs@farsync>mv orapworcl orapworclfs

Ø 由于监听在上面搭建Data Guard的时候已经在主库上配置好,这里就不需要再配置,只需配置TNS。

主库TNS:

orcl =

(DESCRIPTION =

(ADDRESS_LIST =

(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.30)(PORT = 1521))

)

(CONNECT_DATA =

(SERVICE_NAME = orcl)

)

)

orcls =

(DESCRIPTION =

(ADDRESS_LIST =

(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.202)(PORT = 1521))

)

(CONNECT_DATA =

(SERVICE_NAME = orcls)

)

)

orclfs =

(DESCRIPTION =

(ADDRESS_LIST =

(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.98)(PORT = 1521))

)

(CONNECT_DATA =

(SERVICE_NAME = orclfs)

)

)

备库TNS:

orcl =

(DESCRIPTION =

(ADDRESS_LIST =

(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.30)(PORT = 1521))

)

(CONNECT_DATA =

(SERVICE_NAME = orcl)

)

)

orcls =

(DESCRIPTION =

(ADDRESS_LIST =

(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.202)(PORT = 1521))

)

(CONNECT_DATA =

(SERVICE_NAME = orcls)

)

)

orclfs =

(DESCRIPTION =

(ADDRESS_LIST =

(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.98)(PORT = 1521))

)

(CONNECT_DATA =

(SERVICE_NAME = orclfs)

)

)

Ø 这里重点是要配置Far Sync服务器上的监听和TNS,配置如下:

Far Sync 监听:

LISTENER =

(DESCRIPTION_LIST =

(DESCRIPTION =

(ADDRESS = (PROTOCOL = TCP)(HOST = farsync)(PORT = 1521))

(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))

)

)

SID_LIST_LISTENER =

(SID_LIST =

(SID_DESC =

(GLOBAL_DBNAME = orclfs)

(ORACLE_HOME = /u01/app/oracle/product/12.2.0/db_1)

(SID_NAME = orclfs)

)

)

Far Sync TNS:

orcl =

(DESCRIPTION =

(ADDRESS_LIST =

(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.30)(PORT = 1521))

)

(CONNECT_DATA =

(SERVICE_NAME = orcl)

)

)

orcls =

(DESCRIPTION =

(ADDRESS_LIST =

(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.202)(PORT = 1521))

)

(CONNECT_DATA =

(SERVICE_NAME = orcls)

)

)

orclfs =

(DESCRIPTION =

(ADDRESS_LIST =

(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.98)(PORT = 1521))

)

(CONNECT_DATA =

(SERVICE_NAME = orclfs)

)

)

主库(orcl)
db_unique_nameorcl
control_files/data/oradata/orcl/control01.ctl, /data/oradata/orcl/control02.ctl
fal_server'orcls ', 'orclfs '
log_arc _configDG_CONFIG=(orcl,orclfs,orcls)
log_archive_dest_1'location=/data/oradata/orcl/archivelog valid_for=(all_logfiles,all_roles) db_unique_name=orcl'
log_archive_dest_2'service=orclfs sync affirm max_failure=1 alternate=log_archive_dest_3 valid_for=(online_logfiles,primary_role) db_unique_name=orclfs '备注:设置redo同步传输到Far Sync实例orclfs,并且dest_3为备用DEST
log_archive_dest_state_3alternate
log_archive_dest_3'service=orcls async alternate=log_archive_dest_2 valid_for=(online_logfiles,primary_role) db_unique_name=orcls'备注:设置dest_3为备用DEST,当DEST_2不可用,redo通过异步传输的方式直接到备库
Far Sync实例(orclfs)
db_unique_nameorclfs
control_files/data/oradata/orclfs/controlfs01.ctl, /data/oradata/orcl/controlfs02.ctl
fal_serverorcl
log_archive_configdg_config=(orcl,orclfs,orcls)
log_archive_dest_1'location=/data/oradata/orclfs/archivelog valid_for=(all_logfiles,all_roles) db_unique_name=orclfs'
log_archive_dest_2'service=orcls async valid_for=(standby_logfiles,standby_role) db_unique_name=orcls'备注:设置Far Sync实例异步传输redo到备库
log_file_name_convert'/data/oradata/orcl','/data/oradata/orclfs'
备库(orcls)
db_unique_nameorcls
control_files/data/oradata/orcls/control01.ctl, /data/oradata/orcls/control02.ctl
fal_server'orcl','orclfs'
log_archive_configdg_config=(orcl,orclfs,orcls)
log_archive_dest_1'location=/data/oradata/orcls/archivelog valid_for=(all_logfiles,all_roles) db_unique_name=orcls'
log_archive_dest_2''service=orcl valid_for=(online_logfiles,primary_role) db_unique_name=orcl'

备注:尤其注意红色标记部分的配置,有些参数没在这里列出来则表示不需要修改。

根据上面的参数文件修改,我们需要把之前配置好的主备库重启使上面修改的参数生效。

别忘了在备库上开启实时同步:

SQL> alter database recover managed standby database using current logfile disconnect from session;

Database altered.

备注:注意pdb也要启动起来

根据上面的Far Sync实例的pfile参数文件里的设置,在Far Sync服务器上创建相应的文件目录:

orclfs:/home/oracle@farsync>mkdir -p /u01/app/oracle/admin/orclfs/adump

orclfs:/home/oracle@farsync>mkdir -p /data/oradata/orclfs

Ø 先通过pfile创建spfile

SQL> create spfile from pfile='/tmp/initorclfs.ora';

File created.

Ø 通过spfile将Far Sync实例启动到nomount状态

SQL> startup nomount

ORACLE instance started.

Total System Global Area 419430400 bytes

Fixed Size 8793496 bytes

Variable Size 297796200 bytes

Database Buffers 109051904 bytes

本人提供Oracle、MySQL、PG等数据库的培训和考证业务,私聊QQ646634621或微信db_bao,谢谢!

Redo Buffers 3788800 bytes

Ø 恢复控制文件

orclfs:/home/oracle@farsync>rman target /

Recovery Manager: Release 12.2.0.1.0 - Production on Thu Apr 12 09:03:00 2018

Copyright (c) 1982, 2017, Oracle and/or its affiliates. All rights reserved.

connected to target database: ORCL (not mounted)

RMAN> restore controlfile from '/tmp/controlfs01.ctl';

Starting restore at 2018/04/12 09:03:17

using target database control file instead of recovery catalog

allocated channel: ORA_DISK_1

channel ORA_DISK_1: SID=34 device type=DISK

channel ORA_DISK_1: copied control file copy

output file name=/data/oradata/orclfs/controlfs01.ctl

output file name=/data/oradata/orclfs/controlfs02.ctl

Finished restore at 2018/04/12 09:03:18

备注:这里也可以直接将之前从主库传过来的控制文件拷贝到Far Sync实例对应控制文件位置下,然后直接启动到mount状态。

Ø 启动到mount状态

SQL> alter database mount;

Database altered.

Ø 创建standby redo log

这里我们不需要再创建standby redo log,因为在 中我们在主库上面已经早早的把standby redo log 创建好了。

如果之前没有创建过standby redo log,那么这里就需要添加,具体命令如下:

SQL> alter database add standby logfile thread 1 GROUP 10 '/data/oradata/orclfs/stb_redo10.log' size 200M;

Database altered.

SQL> alter database add standby logfile thread 1 GROUP 11 '/data/oradata/orclfs/stb_redo11.log' size 200M;

Database altered.

SQL> alter database add standby logfile thread 1 GROUP 12 '/data/oradata/orclfs/stb_redo12.log' size 200M;

Database altered.

SQL> alter database add standby logfile thread 1 GROUP 13 '/data/oradata/orclfs/stb_redo13.log' size 200M;

Database altered.

Ø 确认配置

SQL> set line 160

SQL> select * from v$dataguard_config;

DB_UNIQUE_NAME PARENT_DBUN DEST_ROLE CURRENT_SCN CON_ID


orcl NONE PRIMARY DATABASE 3597419 0

orclfs orcl FAR SYNC INSTANCE 3597433 0

orcls orclfs PHYSICAL STANDBY 3597433 0

此时Far Sync的实例存放路径

orclfs:/home/oracle@farsync>cd /data/oradata/orclfs/

orclfs:/data/oradata/orclfs@farsync>ll

total 1273264

-rw-r----- 1 oracle dba 5033472 Apr 12 09:05 archivelog1_40_972553740.dbf

-rw-r----- 1 oracle dba 1475584 Apr 12 09:05 archivelog1_41_972553740.dbf

-rw-r----- 1 oracle dba 18825216 Apr 12 12:51 controlfs01.ctl

-rw-r----- 1 oracle dba 18825216 Apr 12 12:51 controlfs02.ctl

-rw-r----- 1 oracle dba 209715712 Apr 12 12:44 stb_redo10.log

-rw-r----- 1 oracle dba 209715712 Apr 12 12:51 stb_redo11.log

-rw-r----- 1 oracle dba 209715712 Apr 12 12:50 stb_redo12.log

-rw-r----- 1 oracle dba 209715712 Apr 12 12:43 stb_redo13.log

从MAXIMUM PERFORMANCE调整到MAXIMUN AVAILABILITY

主库:

SQL> alter database set standby database to maximize availability;

Database altered

SQL> select protection_mode,protection_level from v$database;

PROTECTION_MODE PROTECTION_LEVEL


MAXIMUM AVAILABILITY MAXIMUM AVAILABILITY

Ø 主库switch log

图片.png

Ø 主库alert log记录redo传输到Far Sync实例

图片.png

Ø Fat Sync实例alter log记录FarSync实例接收到redo,并传输redo到备库

图片.png

Ø 备库alert log记录接收到redo并recovery

图片.png

如果只配置了一个Far sync实例,并且LOG_ARCHIVE_DEST_2参数指定了ALERTNATE选项,那么在Far Sync实例不可用的情况下,primary库自动将redo信息发送到LOG_ARCHIVE_DEST_3。即当Far Sync实例不可用,primary库绕过Far Sync实例(orclfs)直接发送redo到备库(orcls),保证传输的连续性,但是primary库保护模式从最大可用模式(MAXIMUM PERFORMANCE)降为最大性能模式(MAXIMUM PERFORMANCE)。

Ø 查看保护模式

图片.png

Ø 中断Far Sync实例:

图片.png

Far Sync alter log:

图片.png

Ø Primary库redo切换

图片.png

Primary库alter log:

图片.png

以上日志说明primary发现LOG_ARCHIVE_DEST_2不可使用后,自动使用LOG_ARCHIVE_DEST_3,保证了redo继续传输到standby database。

Ø Far Sync实例启动后,primary自动使用Far Sync实例

图片.png

Primary库alert log

图片.png

标签:

头像

小麦苗

学习或考证,均可联系麦老师,请加微信db_bao或QQ646634621

您可能还喜欢...

发表回复

嘿,我是小麦,需要帮助随时找我哦
  • 18509239930
  • 个人微信

  • 麦老师QQ聊天
  • 个人邮箱
  • 点击加入QQ群
  • 个人微店

  • 回到顶部
返回顶部