zoukankan      html  css  js  c++  java
  • Data Guard 的三种保护模式

    官方文档链接 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;
    
  • 相关阅读:
    提问的智慧
    Linux下Tomcat的安装配置
    Advanced Puppet 系列的前言
    一个purge参数引发的惨案——从线上hbase数据被删事故说起
    从入门到精通Puppet的实践之路
    Juno Puppet Opertaors Meetup小结
    Openstack配置文件管理的变迁之路
    如何成为一名Top DevOps Engineer
    mod_wsgi的工作模式和配置
    解决PuppetDB Failed to submit 'replace facts'问题
  • 原文地址:https://www.cnblogs.com/tinazzz/p/7080403.html
Copyright © 2011-2022 走看看