官方文档链接 http://docs.oracle.com/cd/E11882_01/server.112/e41134/protection.htm#SBYDB02000

最大可用模式(Maximum Availability)

  • 这种保护模式在不影响主库可用性的前提下提供最高水平的数据保护
  • 在主库需要完成两件事,事务才会被提交
    • 恢复事务所需要的 redo 数据写入在线日志文件(online redo log)
    • 恢复事务所需要的 redo 数据写入同步备库(synchronized standby database)的备用日志文件(standby redo log),如果配置了多个备库,需要至少写到一个备库上
  • 如果主库不能将 redo 数据写入至少一个备库,则主库就像运行在最大性能模式下以保护主库的可用性,直到可以将 redo 数据流写入备库
  • 这种保护模式可以确保数据零丢失,除了某些双故障的情况,例如备库发生故障之后主库也发生故障

最大性能模式(Maximum Performance)

  • 默认的保护模式
  • 这种保护模式在不影响主库性能的前提下提供最高水平的数据保护
  • 事务生成的 redo 数据写入在线日志后事务立即提交;redo 数据也会写到一到多个备库上,相对于事务提交它是异步完成的,所以主库的性能不会被 redo 数据写入备库的延迟所影响
  • 这种保护模式提供的数据保护略逊于最大可用模式,但是对主库性能产生的影响小

最大保护模式(Maximum Protection)

  • 这种保护模式确保主库发生故障时不会有数据丢失
  • 在主库需要完成两件事,事务才会被提交
    • 恢复事务所需要的 redo 数据写入在线日志文件(online redo log)
    • 恢复事务所需要的 redo 数据写入同步备库(synchronized standby database)的备用日志文件(standby redo log),如果配置了多个备库,需要至少写到一个备库上
  • 要确保数据不会丢失,如果主库不能将 redo 数据流写入至少一个备库,主库会 shutdown,而不是继续处理事务
  • 因为最大保护模式更注重数据的保护,Oracle 建议至少配置两个备库来保护运行在最大保护模式下的主库,这样当其中一个备库发生故障时不会导致主库 shutdown

设置主库的数据保护模式

  • 1、根据需要选择一种保护模式
  • 2、确保至少一个备库满足 redo 传输条件
    • 和备库相关的 LOG_ARCHIVE_DEST_n 参数中需要包含下列 redo 传输属性,不同的保护模式的设置不同
    • 备库必须要有备用 redo

  • 3、确保已经在主库和每一个备库将数据库初始化参数 DB_UNIQUE_NAME 设置为一个唯一值
  • 4、确保已经在主库和每一个备库定义了数据库初始化参数 LOG_ARCHIVE_ONFIG,该参数包含主库和每一个备库的 DB_UNIQUE_NAME
  • 设置示例
SQL> ALTER SYSTEM SET LOG_ARCHIVE_CONFIG='DG_CONFIG=(CHICAGO,BOSTON)';
  • 5、设置数据保护模式
在主库执行以下语句
SQL> ALTER DATABASE SET STANDBY DATABASE TO MAXIMIZE {AVAILABILITY | PERFORMANCE | PROTECTION};
  • 只有当前的数据保护模式是 MAXIMIZE AVAILABILITY 并且至少有一个同步物理备库时,才可以将一个 open 的数据库的数据保护模式设置为 MAXIMIZE PROTECTION
  • 6、确认数据运行在新的保护模式下
在主库执行以下查询
SQL> SELECT PROTECTION_MODE FROM V$DATABASE;

Data Guard 的三种保护模式的更多相关文章

  1. 聊聊Dataguard的三种保护模式实验(上)

    Data Guard是Oracle高可用性HA的重要解决方案.针对不同的系统保护需求,DG提供了三种不同类型的保护模式(Protection Mode),分别为:最大保护(Maximum Protec ...

  2. Dataguard三种保护模式

    Oracle Data Guard 提供三种高水平的数据保护模式来平衡成本.可用性.性能和事务保护.可以使用任意可用管理界面来轻松地设置这些模式.要确定适当的数据保护模式,企业需要根据用户对系统响应时 ...

  3. DGbroker三种保护模式的切换

    1.三种保护模式 – Maximum protection 在Maximum protection下, 可以保证从库和主库数据完全一样,做到zero data loss.事务同时在主从两边提交完成,才 ...

  4. DataGuard的三种保护模式

    (一)三种保护模式介绍1.最大性能模式这种模式保证数据库主库性能最大化,主备库之间数据是异步传输的.即,主备日志归档以后才会传输到备库,在备库上使用归档日志文件做恢复操作.这种模式提供在不影响prim ...

  5. Oracle Dataguard三种保护模式

    Oracle Dataguard提供了三种数据保护模式,在此分别总结一下三种数据保护模式的特点. 1.最大保护模式1)这种模式提供了最高级别的数据保护能力:2)要求至少一个物理备库收到重做日志后,主库 ...

  6. 聊聊Dataguard的三种保护模式实验(下)

    4.最大保护模式Maximum Protection 最大保护模式是DG可以提供的最高保护级别,建立在日志同步传输和确认的基础上.同样,可以使用alter database方法进行设置. SQL> ...

  7. Oracle Dataguard三种保护模式概述(转)

    Oracle的DataGuard技术有三种实现模式,分别是max performance.max availability.max protection这三种模式. 以下是来自Oracle文档的摘要信 ...

  8. 探索Oracle11gR2 之 DataGuard 三种保护模式

    Oracle的DataGuard技术有三种实现模式,分别是max performance.max availability.maxprotection这三种模式. 以下是来自Oracle文档的摘要信息 ...

  9. 【Oracle】DG三种保护模式及切换方式

    一.三种保护方式 Required Redo Transport Attributes for Data Protection Modes Maximum Availability Maximum P ...

随机推荐

  1. ST-2

    1.第一个程序没有覆盖到下表为0的数.第二个程序找到的是x中第一个等于0的数的下标. 2.对于第一个程序:x = [2,3,5], y = 3 对于第二个程序:X = [2,0,6] 3.对于两个程序 ...

  2. Servlet简单总结(一)

    一.Servlet简单总结 1.1. 什么是Servlet Servlet是JavaEE三大组建之一,是使用Java语言编写服务器端的程序,主要用来处理Web应用程序中的请求-响应.Servlet并没 ...

  3. iframe 父子页面方法调用

    在写代码的时候经常会用到将一个网页嵌入到另一个网页中,w3c也规定了一个标签<iframe>,这个标签本身就支持跨域,而且所有的浏览器都支持 iframe具有以下属性: 1.framebo ...

  4. 20155212 实验四 《Android程序设计》 实验报告

    20155212 实验四 <Android程序设计> 实验报告 (一)Android Stuidio的安装测试 参考<Java和Android开发学习指南(第二版)(EPUBIT,J ...

  5. Android 工程集成React Native 0.44 注意点

    当前(2017年5月22日 )React Native开发相当火爆,但是搜索下来,没有最新版本0.44集成的教程,因此尝试了一下如何集成到Android原生工程中去.本篇旨在记录出现的问题以及应对方式 ...

  6. 数据库安全性操作——操作原则及SQL注入

    转载请注明出处:http://www.cnblogs.com/Joanna-Yan/p/6893134.html 今天在进行支付宝开发时,看到支付宝开发文档<开放平台第三方应用安全开发指南> ...

  7. 记一次亲身踩过的hibernate的bug

    记一次亲身踩过的hibernate的bug 在写实体类时,经常会对域增加校验,例如@NotNull表示哪个字段不能为空,昨天晚上调试代码,就遇到了问题, @Entity public class Ap ...

  8. C# MVC权限验证

    前言 之前一直没怎么接触过权限验证这块,刚好公司老平台改版,就有了这篇权限验证.此篇文章大致讲解下 精确到按钮级别的验证如何实现.以及权限验证设计的参考思路(菜鸟一枚,大神勿喷). 在开发大项目的时候 ...

  9. 对RabbitMQ.Client进行一下小小的包装,绝对实用方便

    RabbitMQ是一个老牌的非微软的消息队列组件,一般来说应该能满足中小型公司对消息队列生产的需求,平时我们在.NET开发环境下运用它是可能会需要RabbitMQ.Client的SDK库,此库是官网提 ...

  10. React之组件通信

    组件通信无外乎,下面这三种父子组件,子父组件,平行组件(也叫兄弟组件)间的数据传输.下面我们来分别说一下: 父子组件: var Demo=React.createClass({ getInitialS ...