B14239 Oracle Data Guard 概念和管理 10g 版本 2 fable_cao 翻译
重做传输服务 5-1
5 重做传输服务
本章描述了如何配置重做传输服务从一个生产数据库传送重做到一个或更多目的地。
它包含下面主题:
z 重做传输服务介绍
z 发送重做数据到哪里
z 如何发送重做数据
z 应该何时发送重做数据
z 如果出现错误如何应对
z 设置数据保护模式
z 管理日志文件
z 管理归档中断
z 核查
5.1 重做传输服务介绍
重做传输服务控制从数据库目的地到一个或更多目的地的重做数据的自动化转移。重
做传输服务也管理解决由于网络故障导致归档重做日志文件中断的过程。
重做传输服务能传送重做数据到本地和远程目的地。远程目的地能包括任何下面类型:
物理和逻辑备数据库,归档重做日志档案资料库,Oracle Change Data Capture 分段运输数据
库,和 Oracle Streams 下游捕获数据库。
图 5-1 显示了一个简单的 Data Guard 配置,重做传输服务归档重做数据到在主数据库
上的本地目的地,同时也传送到在远程备数据库目的地上的归档重做日志文件或备重做日志
文件。
图
5
-
1
传送重做数据
5.2 发送重做数据到哪里
本节包含下述主题:
z 目的地类型
B14239 Oracle Data Guard 概念和管理 10g 版本 2 fable_cao 翻译
重做传输服务 5-2
z 如何发送重做数据
z 设置闪回恢复区域
5.2.1 目的地类型
重做传输服务支持多种类型的目的地:
z Oracle Data Guard 备数据库
备数据库目的地既能是物理备数据库也能是逻辑备数据库。1.1.2 节讨论了备数据
库。
z 归档重做日志档案资料库
这种类型目的地允许离站点归档重做数据。归档日志档案资料库是使用物理备控
制文件、启动实例、并安装数据库创建的。这个数据库不包含数据文件并且不能用于
切换或故障转移。这种替代方法作为短时间内,可能是一天,保留归档重做日志的方
法是很有用的,然后日志文件能够被删除,。这避免了另外全配置的备数据库的绝大多
数存储和处理过程代价。
Oracle 推荐使用归档重做日志档案资料库作为归档重做日志文件的临时存储。这
能通过在运行于最大性能模式的 Data Guard 配置中为基于归档的传输(使用
LOG_ARCHIVE_DEST_n 参数上的 ARCH 属性)配置档案资料库目的地来完成。对于
无数据丢失的环境,你应该使用全配置的备数据库,在 Data Guard 配置中使用 LGWR、
SYNC、和 AFFIRM 传输设置以及运行在最大保护模式或最大可用性模式。
z Oracle Streams 实时下游捕获数据库
这种目的地类型允许 Oracle Streams 在远程下游数据库上配置一个捕获进程。
Streams 下游捕获进程使用重做传输服务来传送重做数据到下游数据库,在那里 Streams
捕获进程捕获在远程目的地上的备重做日志文件和归档重做日志文件中的更改。查看
Oracle Streams 概念和管理以获得更多信息。
z Oracle Change Data Capture 分段运输数据库
这种目的地类型远程支持在分段运输数据库上的 Oracle Change Data Capture
Asynchronous AutoLog 配置。使用重做传输服务将重做数据从源数据库拷贝到分段运输
数据库上。Change Data Capture 配置捕获从重做数据中的更改。查看 Oracle 数据库数
据仓库指南以获得更多信息。
为了讨论目的,本指南称生产数据库为主数据库,归档目的地为备数据库(如 1.1 节中
定义)。如果你使用 Oracle Change Data Capture,分别将术语源和分段运输数据库替换为主
和备数据库。如果你使用 Oracle Streams,分别将术语源和下游捕获数据库替换为主和备数
据库。
5.2.2 使用 LOG_ARCHIVE_DEST_n 参数配置目的地
LOG_ARCHIVE_DEST_n 初始化参数最多定义 10(n=1,2,3,…10)个目的地,每个必须
指定 LOCATION 或 SERVICE 属性来指定归档重做数据到哪里。
LOCATION和SERVICE属性描述了本地磁盘位置或代表一个重做传输服务将会传送重
做数据的备目的地的Oracle网络服务名。使用SERVICE属性指定远程目的地允许Data Guard
维护一个主数据库的事务一致性远程拷贝,以用于灾难恢复。
对于你定义的每个 LOG_ARCHIVE_DEST_n 初始化参数,指定相应的
LOG_ARCHIVE_DEST_STATE_n 参数。LOG_ARCHIVE_DEST_STATE_n(n 是从 1 到 10
B14239 Oracle Data Guard 概念和管理 10g 版本 2 fable_cao 翻译
重做传输服务 5-3
的整数)初始化参数指定相应的目的地当前是开(允许)还是关(禁止)。表 5-1 描述了
LOG_ARCHIVE_DEST_STATE_n 参数属性。
表
5
-
1 LOG_ARCHIVE_DEST_STATE_n
初始化参数属性
属性 描述
ENABLE 重做传输服务能传送重做数据到这个目的地。这是默认值。
DEFER 重做传输服务将不会传送重做数据到这个目的地。这是有效但没有使用的目的地。
ALTERNATE 这个目的地没有被允许,但是如果到其相关的目的地的连接故障了则它将变成允许。
RESET 与 DEFER 的功能相同,但是如果以前发生故障则为目的地清理任何错误信息。
例子 5-1 提供了使用 LOCATION 属性的一个目的地的例子。
例子
5
-
1
指定本地归档目的地
LOG_ARCHIVE_DEST_1='LOCATION=/arch1/chicago/'
LOG_ARCHIVE_DEST_STATE_1=ENABLE
图 5-2 显示了这个简单的配置,包含单个本地目的地,看起来是什么样的。日志写进
程写重做数据到联机重做日志文件。当每个联机重做日志写满时,发生日志切换并且 ARCn
进程归档写满的联机重做日志文件到归档重做日志文件。写满的联机重做日志文件现在又可
以重用了。
图
5
-
2
当没有备数据库时的主数据库归档
很重要的一点是在图 5-2 中所示的配置没有包括备数据库,因而不提供灾难恢复保护。
要使得这个简单配置变为提供灾难恢复的 Data Guard 配置,通过指定 SERVICE 属性在远程
目的地添加一个备数据库。
例子 5-2 显示了允许重做传输服务在本地目的地 chicago 归档联机重做日志并传送重
做数据到使用 Oracle 网络服务名 boston 远程备数据库的初始化参数。该例子对于所有的其
B14239 Oracle Data Guard 概念和管理 10g 版本 2 fable_cao 翻译
重做传输服务 5-4
它 LOG_ARCHIVE_DEST_n 属性使用了默认值。
例子
5
-
2
指定远程归档目的地
LOG_ARCHIVE_DEST_1='LOCATION=/arch1/chicago/'
LOG_ARCHIVE_DEST_STATE_1=ENABLE
LOG_ARCHIVE_DEST_2='SERVICE=boston'
LOG_ARCHIVE_DEST_STATE_2=ENABLE
这些初始化参数设置了使用归档(ARCn)进程归档本地和远程目的地的 Data Guard 配
置。这种配置提供了最大性能级别的数据保护。
虽然你能仅仅通过在 LOG_ARCHIVE_DEST_n 参数上指定 LOCATION 或 SERVICE 属
性创建 Data Guard 配置,但是你也能选择指定更多的属性来进一步定义每个目的地的行为。
第 14 章提供了所有 LOG_ARCHIVE_DEST_n 参数属性的参考信息。
5.2.2.1 更改目的地属性
你能使用 ALTER SYSTEM SET 语句动态更新 LOG_ARCHIVE_DEST_n 和
LOG_ARCHIVE_DEST_STATE_n 参数的大多数属性。
更改在主数据库上的下一次日志切换生效。例如,要延迟日志传输服务传送重做数据
到名为 boston 的远程备数据库,在主数据库上执行下面的语句:
SQL> ALTER SYSTEM SET LOG_ARCHIVE_DEST_2='SERVICE=boston
2> VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE)';
SQL> ALTER SYSTEM SET LOG_ARCHIVE_DEST_STATE_2=DEFER;
5.2.2.2 使用 V$ARCHIVE_DEST 查看属性
查询 V$ARCHIVE_DEST 视图以查看 LOG_ARCHIVE_DEST_n 初始化参数的当前设
置。
5.2.3 设置闪回恢复区
Oracle 数据库允许你配置一块磁盘区域称为
闪回恢复区
,是一个目录或 Oracle 存储管
理磁盘,用于恢复相关文件的默认存储区域。
要配置闪回恢复区,使用 DB_RECOVERY_FILE_DEST 初始化参数。如果你创建一个
闪回恢复区但没有设置任何其它的本地归档目的地,则 LOG_ARCHIVE_DEST_10 被隐式地
设置为 USE_DB_RECOVERY_FILE_DEST(意味着归档重做日志文件将会被设置到闪回恢
复区)。(查看 Oracle 数据库备份和恢复基础来配置闪回恢复区,以及 Oracle 数据库管理员
指南以获得 Oracle 存储管理器和 Oracle 管理文件更多相关信息。)
注:
存储在闪回恢复区的归档重做日志文件的文件名是由 Oracle 管理文件(OMF)自动生
成的;这些文件名不是基于由 LOG_ARCHIVE_FORMAT 初始化参数指定的格式。
本小节包含下述主题:
z 使用 LOG_ARCHIVE_DEST_10 目的地
z 使用其它 LOG_ARCHIVE_DEST_n 目的地
z 使用 STANDBY_ARCHIVE_DEST 目的地
z 在主和备数据之间共享闪回恢复区
B14239 Oracle Data Guard 概念和管理 10g 版本 2 fable_cao 翻译
重做传输服务 5-5
注:
主数据库不能写重做数据到逻辑备数据库的闪回恢复区。
查看 Oracle 数据库备份和恢复基础来配置闪回恢复区,以及 10.3.4 节以获得在闪回恢
复区设置归档重做日志文件的删除策略。
5.2.3.1 使用 LOG_ARCHIVE_DEST_10 目的地
如果已经配置了闪回恢复区并且没有定义本地目的地,Data Guard 隐式使用
LOG_ARCHIVE_DEST_10 目的地作为闪回恢复区。
当使用 LOG_ARCHIVE_DEST_10 参数时,Data Guard 自动使用所有
LOG_ARCHIVE_DEST_10 属性的默认值。要覆盖默认值,你能通过显式指定
LOG_ARCHIVE_DEST_10 参数动态设置大多数属性。例如,下面的 ALTER SYSTEM SET
语句在 LOG_ARCHIVE_DEST_10 初始化参数上指定了多个属性。
SQL> ALTER SYSTEM SET
LOG_ARCHIVE_DEST_10='LOCATION=USE_DB_RECOVERY_FILE_DEST LGWR
MANDATORY REOPEN=5 VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE)'
当设置 LOG_ARCHIVE_DEST_n 属性时,LOG_ARCHIVE_DEST_n 参数的 TEMPLATE
属性将会覆盖闪回恢复区的所有其它配置,归档重做日志文件将会使用由 TEMPLATE 属性
指定的目录和文件名。
5.2.3.2 使用其它 LOG_ARCHIVE_DEST_n 目的地
你能显式设置一个或更多 LOG_ARCHIVE_DEST_n 目的地来指向闪回恢复区。例如,
你能选择地:
z 配置 LOG_ARCHIVE_DEST_10 以外的目的地
例如,现有的 Data Guard 配置可能已经使用 LOG_ARCHIVE_DEST_10 目的地用
作其它目的,或者你可能想释放 LOG_ARCHIVE_DEST_10 目的地用作其它用途。
要配置其它归档目的地以指向闪回恢复区,你必须指定
LOCATION=USE_DB_RECOVERY_FILE_DEST 属性来定义新的目的地。例如:
SQL> ALTER SYSTEM SET
LOG_ARCHIVE_DEST_1='LOCATION=USE_DB_RECOVERY_FILE_DEST ARCH
MANDATORY REOPEN=5 VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE)'
隐式的配置(使用 LOG_ARCHIVE_DEST_10 来使用闪回恢复区)将会被清除。
z 配置 LOG_ARCHIVE_DEST_10 以外的目的地,用于角色转化之后
例如,你能配置一个目的地,当数据库操作于备角色时对于备重做日志归档有效,
另一个目的地,当数据库操作于主角色时对于联机重做日志归档有效。
要配置 LOG_ARCHIVE_DEST_10 以外的 LOG_ARCHIVE_DEST_n 目的地,你必
须显式指定两个目的地:
LOG_ARCHIVE_DEST_9='LOCATION=USE_DB_RECOVERY_FILE_DEST ARCH
MANDATORY REOPEN=5 VALID_FOR=(STANDBY_LOGFILES,STANDBY_ROLE)'
LOG_ARCHIVE_DEST_10='LOCATION=USE_DB_RECOVERY_FILE_DEST ARCH
MANDATORY REOPEN=5 VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE)'