DG有下面三种模式 在Maximum protection下, 可以保证从库和主库数据完全一样,做到zero data loss.事务同时在主从两边提交完成,才算事务完成。如果从库宕机或者网络出现问题,主从库不能通讯,主库也立即宕机。在这种方式下,具有最高的保护等级。但是这种模式对主库性能影响很大,要求高速的网络连接。 在Maximum availability模式下,如果和从库的连接正常,运行方式等同Maximum protection模式,事务也是主从库同时提交。如果从库和主库失去联系,则主库自动切换到Maximum performance模式下运行,保证主库具有最大的可用性。 在Maximum performance,主库把归档的 archived log通过arch进程传递给从库,在这种方式下,主库运行性能最高,但是不能保证数据不丢失,且丢失的数据受redo log的大小影响。在redo log过大的情况下,可能一天都没有归档一个日志,可以通过手工切换日志的方式来减小数据的丢失。 大家在做dataguard database 的时候一般选择什么样的模式? 目前国内基本上是最大性能模式,其他模式会整死你 Maximum availability觉得也挺好的,如果网络没有问题,和Maximum protection一样,如果网络不好和Maximum performance一样 首先Maximum protection在只有一台standby database 的情况下一般不会使用的,一方面对主库的性能影响比较的大,一方面要保证快速安全的网络速度,如果网络断开或者standby database 失效的话,那么会引起主库的down机,虽然说可以最大保护数据,但是还是不安全,如果有多台standby database 的话可以考虑 Maximum performance;虽然对主库的性能影响不大,但是对数据的保护不好啊,9i一般日志默认大小是100M,如果主库的磁盘全不坏了,那至少要损失100m 的日志数据啊,这就起不到保护数据的作用 现在比较好的就是Maximum availability,在正常情况下运行在Maximum protection下,如果网络或者standby dababase 有问题的时候会自动切换到Maximum performance下,但是我在测试的时候发现如果我把standby 以read only open 的时候发现主库就不传送日志了,stanndby database 就失效了 我用Maximum performance模式. 我认为要看生产需要,不同的应用需求不一样,我们的库就是不能宕,所以就不可能使用保护模式了,呵呵 觉得Maximum protection切换比较麻烦,以前忙了好半天才切换成功 还是用第三种模式吧!成熟! 这个应该关键还是看需要吧,客户允许宕机时间,允许数据丢失多少,客户现有机器设备条件都要综合考虑的。没有最好,只有最合适 呵呵比较好的一种方式是使用Max performance 但是 log transfer 使用LGWR ASYNC NOAFFIRM |