在DataGuard中数据保护模式要按照需求来设置
在所有的配置中都是用性能换数据的安全,要么就是用数据的安全级别来换性能。
This protection mode ensures zero data loss except in the case of certain double faults, such as failure of a primary database after failure of the standby database.
--先将log写入到内存或者一个备库归档,然后执行事务,除了双方同时故障的意外。
第二种:最大性能
Maximum performance: This is the default protection mode. It provides the highest level of data protection that is possible without affecting the performance of a primary database. This is accomplished by allowing transactions to commit as soon as all redo data generated by those transactions has been written to the online log. Redo data is also written to one or more standby databases, but this is done asynchronously with respect to transaction commitment, so primary database performance is unaffected by delays in writing redo data to the standby database(s).
This protection mode offers slightly less data protection than maximum availability mode and has minimal impact on primary database performance.
--默认的保护方式,先将事务执行,然后记录到log,然后同步到备库,对主库iude影响非常小
第三种:数据0丢失
Maximum protection: This protection mode ensures that no data loss will occur if the primary database fails. To provide this level of protection, the redo data needed to recover a transaction must be written to both the online redo log and to the standby redo log on at least one synchronized standby database before the transaction commits. To ensure that data loss cannot occur, the primary database will shut down, rather than continue processing transactions, if it cannot write its redo stream to at least one synchronized standby database.
--当事务提交后,将log先提交到备库,关闭主库其他的事务,然后执行事务,完毕后执行下一个事务
2.修改方式(数据保护由主库参数操控)
注意:在主库操作
按数据包户程度排序
maximize protection < maximize availability < maximize performance
SQL> select protection_mode,protection_level from v$database;
PROTECTION_MODE PROTECTION_LEVEL
------------------------------------------------------------ ------------------------------------------------------------
MAXIMUM PERFORMANCE MAXIMUM PERFORMANCE
SQL> alter database set standby database to maximize availability;
数据库已更改。
SQL> select protection_mode,protection_level from v$database;
PROTECTION_MODE PROTECTION_LEVEL
------------------------------------------------------------ ------------------------------------------------------------
MAXIMUM AVAILABILITY RESYNCHRONIZATION //没生效
推荐阅读: