Data Guard主要提供两个服务
)Redo传输服务即把Primay端的Redo日志传输到一个或多个Standby目的地
)Redo应用服务即在Standby端应用从Primay端传输过来的Redo日志
本文先讲讲其中的Redo传输服务
使用ARCn传输Redo日志
默认情况下采用ARCn传输redo日志不过只有在最高性能模式下才可以使用ARCn(具体可参考《Oracle] Data Guard 之 三种保护模式介绍 》)采用ARCH传输Redo日志的示意图如下
其大致过程如下
)Primay段ARC一旦完成日志切换ARC就将新生成的归档日志传输到Standby端
)Standby 端由RFS进程接受日志如果配置了standby redo log记录至standby redo log等standby redo log做log switch形成归档日志再应用归档日志做恢复如果没有配置standby redo logRFS进程接收到日志后放到standby端归档目录下standby再应用归档日志做恢复
使用LGWR传输Redo日志
使用LGWR进程和ARCn有很大的不一样最明显的区别是它不需要等Primary完成日志切换后再传输其示意图如下
其过程大致如下
)一旦Primary有Redo日志产生LGWR将触发LNSn进程传输Redo只Standby redo log注意这里不能由LGWR直接传输因为整个数据库实例只有一个LGWR为了保证它的主要性能不受影响不能由它直接传输)
)网络传输模式可以选择sync或asyncsync是指当Primary提交时 必须得等Redo传输至Standby成功后才能返回所以如果设置sync建议同时设置NET_TIMEOUT参数超时无响应则返回错误 async是指Primary提交是否成功和日志是否传输成功没有关系这样对Primary的性能影响最小
)Standby端的RFS进程把Redo写入Standby redo log如果开启了实时应用就将redo应用至Standby数据库如果没有开启实时应用等Standby redo log归档后再应用到Standby数据库