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),如果配置了多个备库,需要至少写到一个备库上
最大性能模式(Maximum Performance)
- 默认的保护模式
- 这种保护模式在不影响主库性能的前提下提供最高水平的数据保护
- 事务生成的 redo 数据写入在线日志后事务立即提交;redo 数据也会写到一到多个备库上,相对于事务提交它是异步完成的,所以主库的性能不会被 redo 数据写入备库的延迟所影响
- 这种保护模式提供的数据保护略逊于最大可用模式,但是对主库性能产生的影响小
最大保护模式(Maximum Protection)
- 这种保护模式确保主库发生故障时不会有数据丢失
- 在主库需要完成两件事,事务才会被提交 恢复事务所需要的 redo 数据写入在线日志文件(online redo log)
- 恢复事务所需要的 redo 数据写入同步备库(synchronized standby database)的备用日志文件(standby redo log),如果配置了多个备库,需要至少写到一个备库上
设置主库的数据保护模式
- 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;