Data Guard 的三种保护模式

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;



这种方式对数据库有三种保护模式。

1. 最大保护:数据100%零丢失。但是生产环境中很少使用最大保护模式,因为如果备库出现问题或网络延迟,都会给主库的事物带来性能的影响。且最大保护模式要求必须两个以上的备库,对客户来讲,需要准备三台服务器,因此,最大性能模式更加受到客户的青睐。

2. 最大性能:相较于最大保护需要三台服务器,最大性能只需要一台服务器便可以满足业务需求。虽然最大性能无法做到数据100%零丢失,可能主库和备库之间会存在数据差异,但是,网络和备库都不会对主库的事物处理带来影响,这也是最大性能模式的最大优势。

3. 最大可用:最大可用模式也可以保证数据100%零丢失,但是和最大保护模式一样,备库和网络延迟都会对主库造成影响,且需要两台以上的服务器。但是在最大可用模式下,如果主库没有接到备库发出的信号,将自动转换成最大性能模式。



上一篇: