Oracle 白皮书-Oracle Data Guard 快速启动故障切换指南(1)-阿里云开发者社区

开发者社区> 余二五> 正文

Oracle 白皮书-Oracle Data Guard 快速启动故障切换指南(1)

简介:
+关注继续查看

本文档将指导您使用物理备用服务器配置 Oracle Data Guard 快速启动故障切换 (FSFO)。FSFO 可以显著提高所有环境的可用性和灾难恢复准备,从基于云的价格低廉的系统一直到全球分布的数据中心。

本指南中的信息基于在跨国公司生产环境中部署 FSFO 的实践经验。 本指南对您的现有环境做出几个假设,并且包括创建物理备用服务器和 Data Guard Broker 配置的示例。要开始本指南,您只需 Oracle 数据库企业版 10.2 版或更高版本、一个数据库和三个主机:两个主机用于数据库,一个小型主机用于 FSFO 观察器。 本指南不对操作系统进行讨论;然而,一些示例中可能包含了特定于平台的元素(如路径和文件命名惯例)。

FSFO 环境的主要组件

FSFO 构建于众多其他 Oracle 技术和特性(如 Data Guard、闪回数据库和 Data Guard Broker)之上。

Data Guard

FSFO 的基础是 Data Guard — 一个主数据库和至少一个备用数据库。备用数据库可以是物理的或逻辑的,可以有多个备用数据库,但只有一个备用数据库可作为随时进行故障切换的目标。以下段落将描述受支持的可用性模式。


最高可用性模式(Oracle 数据库 10g 第 2 版及更高版本)

最高可用性模式中,FSFO 保证在故障切换期间不会丢失已收到提交确认 的事务。该保证的代价是增加提交延迟(log file sync 等待事件)。最高可用性模式使用同步重做传输,FSFO 则增加了额外要求,即重做应记录在目标备用数据库(log_archive_dest_n 的 AFFIRM 选项)的备用重做日志 (SRL) 中。Overall commit latency is increased by the round-trip network latency.往返网络延迟增加了总体提交延迟。增加的延迟降低了吞吐量;然而,有些时候吞吐量的差异是由增加的并行造成的。

虽然重做传输是同步的,但如果备用数据库由于某种原因(如备用数据库、主机或网络故障)不可用,最高可用性模式会保持主数据库可用。如果在用户指定的时间段(log_archive_dest_n 的 NET_TIMEOUT 选项)之后,主数据库无法联系到备用数据库,它将退出同步传输模式并开始像在最高性能模式中一样进行操作。当备用数据库再次可用时,主数据库和备用数据库重新同步并恢复同步重做传输。

最高性能模式(Oracle 数据库 11g 第 1 版及更高版本)

Oracle 数据库 11g FSFO 增加了对最高性能模式的支持(异步重做传输),提供了用持久性换取性能的灵活性。提交延迟不受重做传输的影响,但备用数据库未收到其重做的已提交事务将在故障切换期间丢失。通过指定故障切换期间丢失事务的最大允许时间,最高性能模式中的 FSFO 配置可以限制潜在的数据丢失。例如,如果指定的限定值为 30 秒(默认),FSFO 将保证在故障切换期间保存 30 秒钟内提交的所有事务。 最小允许限定值为 10 秒钟。

Data Guard Broker

Broker 是一个 Data Guard 管理实用程序,用于维护有关主数据库及其备用数据库的状态信息。 它自动设置与 Data Guard 相关的数据库初始化参数(如实例启动和角色转换)、启动备用数据库的应用服务,并且自动执行与维护 Data Guard 配置相关的许多管理任务。FSFO 是 Broker 的一个特性,用于记录故障切换目标的相关信息,例如,故障发生后到触发故障切换之间的等待时间以及 FSFO 的其他特有属性。

闪回数据库

闪回数据库是一个集成在 Oracle 数据库中的持续数据保护 (CDP) 解决方案。它使用名为闪回日志的磁盘数据结构,提供一个将数据库快速恢复到之前时间点或 SCN 的方法。数据库闪回比传统的时间点或基于 SCN 的恢复速度更快、结合更完美(一条简单的 DDL 语句)。FSFO 将闪回数据库用作将故障主数据库恢复为备用数据库流程的一部分。


自动恢复的问题通常因为错误的配置,因此我们来了解一些详细信息。

闪回数据库记录经过更改的数据块的前映像。为了避免记录每个数据块的每次更改的开销,闪回数据库每 30 分钟进行一次“模糊”快照,仅记录前映像块上一次快照后的第一次更改。在同一快照期间中,不再记录对同一数据块的后续更改。

数据库的闪回分成两个阶段:

  • 恢复 — 闪回数据库将数据文件恢复到指定 SCN 前最近的快照。这可以与执行从指定 SCN 前的备份进行数据文件 RMAN 恢复相比,但是速度更快。

  • 介质恢复 — 恢复完成后,恢复将作为典型介质恢复继续进行,根据存档重做日志和联机重做日志应用重做并通过撤消回滚未提交的更改。这意味着为了使闪回数据库操作成功,闪回数据库需要在快照时间和恢复 SCN 之间生成的所有存档重做日志(通常为重做后的 30 分钟)。使用 V$RECOVERY_PROGRESS 视图监视恢复状态。

对于 FSFO 环境,设置 db_flashback_retention_target = 60 或更高值,可以为自动备用恢复提供足够的闪回数据库历史记录。模糊快照的元数据存储在闪回日志本身中。如果没有元数据,Oracle 将无法找到模糊快照,从而无法进行闪回。为了避免计时差异产生的问题,我们建议值设置为不少于 60 分钟,实际上,如果值设置为 30 或 30 以下,肯定会导致闪回数据库故障。

闪回数据库将日志存储在快速恢复区 (FRA) 中,所以 FRA 必须有足够大的空间来存储至少 60 分钟的闪回数据库历史记录。 总的存储需求与快照期间更改的不同数据块的数量成比例,例如,一小组数据块上的 1,000,000 次块更改生成的闪回数据库历史记录小于一大组数据块上的 1,000,000 次块更改所生成的闪回数据库历史记录。确定闪存数据库存储需求的一个好方法是,启用闪存数据库并观察其在几次峰值负载时所使用的存储量。通过启用闪回数据库来确定其存储需求也有一定的风险 — 如有必要,在主数据库处于打开状态时可以将其禁用。然而,重新启用闪回数据库将需要回弹,因为数据库必须进行安装且未打开。

FSFO 观察器

观察器是非常典型的主/备用 Data Guard 配置中的第三方。它实际上是一个内置于 DGMGRL CLI(Data Guard Broker 命令行界面)中、占用空间很小的 OCI 客户端,与其他所有客户端一样,可以运行在与数据库服务器不同的硬件平台上。其主要工作是在条件允许时执行故障切换,而不影响 DBA 设置的数据持久性约束条件。只有观察器能启动 FSFO 故障切换。它的另一个工作是在启用该特性的情况下(默认)自动将主数据库恢复为备用数据库。观察器是 Data Guard 故障切换在强健的高可用性解决方案中承担重要角色的关键因素,也是造成 Data Guard 故障切换在 FSFO 出现前后重大差异的关键因素。

注:FSFO 观察器版本必须与数据库版本匹配。 Oracle 数据库 11g 观察器与 10g 数据库不兼容,Oracle 数据库 10g 观察器与 11g数据库也不兼容。

FSFO 故障切换的条件

默认情况下,当且仅当满足以下条件时,观察器才会启动到目标备用数据库的故障切换:

  • 观察器正在运行

  • 观察器和备用数据库均与主数据库失去联系

    • 注:如果观察器与主数据库失去联系,但是备用数据库并未失去联系,观察器可以确定主数据库仍然通过备用数据库运行。


  • 观察器仍然保持与备用数据库的联系

  • 满足持久性约束条件

  • 故障切换阈值延时已过

用户可配置的故障切换条件(11g 及更高版本)

Oracle 数据库 11g 第 1 版引入了用户可配置的故障切换条件,这些条件可以触发观察器立即启动故障切换。

运行状况条件

Broker 可配置为在以下任一条件下启动故障切换。以蓝色显示的条件是默认启用的。


  • Datafile Offline(由于 IO 错误)

  • Corrupted Controlfile

  • Corrupted Dictionary

  • Inaccessible Logfile(由于 IO 错误)

  • Stuck Archiver


Oracle 错误 (ORA-NNNNN)

您可以指定一个将启动 FSFO 故障切换的 ORA 错误列表。该列表默认为空。

应用程序启动

应用程序可直接使用 DBMS_DG.INITIATE_FS_FAILOVER 过程启动 FSFO 故障切换,并包括一个可选的在观察器日志和主数据库警报日志中显示的消息文本。











本文转自 客居天涯 51CTO博客,原文链接:http://blog.51cto.com/tiany/1399586,如需转载请自行联系原作者

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
Android实现连续并排的若干个TextView单击改变背景颜色达到选项卡Tab栏切换效果
《Android实现连续并排的若干个TextView单击改变背景颜色达到选项卡Tab栏切换效果》 实现的组件交互目的很简单,就是要达到类似tab选项卡的导航栏一样,当用户点击了连续并排的若干个TextView其中之一时候,要产生一定的交互效果(背景颜色改变等)。
729 0
学会这些Sublime快捷键,让你在Windows和Mac中自由切换
作为程序员的我们有时因为工作要求往往需要在不同的平台上写代码,而Sublime优异跨平台性成为写代码的不二选择。不过有时Sublime在不同的环境下各种快捷键却不完全相同。所以在本文中小编为大家整理了一些常用的操作在不同平台下对应的快捷键,希望能帮到大家。
3715 0
阿里云服务器端口号设置
阿里云服务器初级使用者可能面临的问题之一. 使用tomcat或者其他服务器软件设置端口号后,比如 一些不是默认的, mysql的 3306, mssql的1433,有时候打不开网页, 原因是没有在ecs安全组去设置这个端口号. 解决: 点击ecs下网络和安全下的安全组 在弹出的安全组中,如果没有就新建安全组,然后点击配置规则 最后如上图点击添加...或快速创建.   have fun!  将编程看作是一门艺术,而不单单是个技术。
4479 0
Flutter的AnimatedContainer实现容器样式的动画切换
AnimatedContainer可以理解为Container Animat,也就是说带动画的容器,使用AnimatedContainer可以很方便的实现Widget的动画效果。
182 0
oracle dataguard 角色切换
备库  alter database commit to switchover to primary; media recovery required --如果报ORA-16139: media recovery required,可能是由于未应用日志引起,可先执行 ALTER ...
524 0
Iphone [Tab Bar实现多view切换,Picker,DataPicter实现
用Tab Bar Controller处理IPhone多个view切换, 而且还附有创建空项目,picker和DataPicker的实现! 具体步骤: 1.创建一个空项目,选择User Interface->View,命名为rootView。
835 0
@Transactional导致AbstractRoutingDataSource动态数据源无法切换的解决办法
上午花了大半天排查一个多数据源主从切换的问题,记录一下: 背景: 项目的数据库采用了读写分离多数据源,采用AOP进行拦截,利用ThreadLocal及AbstractRoutingDataSource进行数据源切换,数据源代码如下: public class RoutingDataSour...
3910 0
+关注
12613
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
文娱运维技术
立即下载
《SaaS模式云原生数据仓库应用场景实践》
立即下载
《看见新力量:二》电子书
立即下载