Protection Content
Data Guard的数据保护模式是出于不同的业务或环境需求而设置的、对Primary数据库的保护方法,Data Guard支持三种数据保护模式,即最高可用性(Maximum Availability)、最大性能(Maximum Performance)和最大保护(Maximum Protection)。
1. 最高可用性(Maximum Availability)
这种数据保护模式是在保证Primary数据库高可用的条件下的最高级别保护模式,在Primary数据库中一个执行要完成两件事才会提交,一是将事务的Redo数据写入重做日志文件,二是将事务数据写入Standby数据库的重做日志文件(如果配置了多个Standby数据库则需要至少写入一个Standby数据库),而后才能提交该事务,这样该事务才会正常结束。
如果由于种种原因,如网络故障等造成Redo数据不能写入至少一个Standby数据库,则Primary数据库运行在最大性能模式下,实现Redo数据的异步传输,直到顺利将Redo数据同步到Standby数据库。这种模式不像最大保护模式会导致Primary数据库关闭,这也就是最高可用性的含义。
我们可以通过下列所示的方法查询当前的数据库保护模式。
1 SQL> select protection_mode from v$database; 2 PROTECTION_MODE 3 -------------------- 4 MAXIMUM AVAILABILITY
2. 最大性能模式(Maximum Performance)
这里,最大性能的含义是在不影响Primary数据库性能的前提下,提供最高级别的数据保护。在Primary数据库端的事务,在将Redo数据写入在线重做日志文件后就可以顺利结束,而并不需要等待同时将Redo数据写入至少一个Standby数据库,这样使得Pimary数据库端事务不受过多的、与Standby数据库同步而造成的诸如等待事件影响,因为Redo数据传输是异步执行的。在数据保护方面相比最大可用性保护模式略显逊色,但是在Primary数据库性能上确实有提升。
最大性能数据保护模式是默认的Data Guard数据保护模式。
3. 最大保护模式(Maximum Protection)
最大保护模式不会造成数据丢失。使用这种保护模式,在Primary数据库端的事务也要完成两件事才能提交,一是将事务的Redo数据写入重做日志文件,二是将事务数据写入Standby数据库(如果配置了多个Standby数据库则需要至少写入一个Standby数据库),而后才能提交该事务,也就是该事务才会正常结束。如果此时Standby数据库故障,无法顺利将Redo数据流同步到至少一个Standby数据库,则Primary数据库会宕机。
可见这种保护模式称为最大保护模式是名符其实的,即宁愿系统不能使用,也不会因无法保护数据而使得系统正常运行。
4. 总结
在Data Guard提供的三种数据保护方式中,我们一定要理解其分类的基础,即从对事物的不同处理方式上进行分类。最大可用性保证事物完成必须将Redo数据写入Primary库的在线Redo日志和Standby数据库,如果Standby库无法写入则采取异步传输方式传输Redo数据;最大性能的事务完成只要求将Redo数据写入Primary库的在线日志,而异步地将Redo数据写入Standby数据库;最大保护有点极端,但对于最大化数据保护也没有其他办法,即一个事务的完成需要将Redo数据写入Primary库的在线日志和Standby数据库,若Standby库无法写入则Primary库关闭。

浙公网安备 33010602011771号