一主多备(最多9个备库)
LNS(Log Network Server)SYNC or ASYNC

SYNC
1、在主库,用户进行并提交一个事务,LGWR从SGA的redo log buffer中读取redo数据写到主库本地的ORL(online redo log)中
2、LNS从SGA的redo log buffer中读取redo数据通过network传输到备库,备库的RFS进程接收redo数据并写入到SRL中(standby redo log)
3、RFS接收到SRL写入完毕后会反馈一个确认写完的信息给主库的LNS上,此步骤也是通过network。
4、LNS接收到RFS传来的确认反馈,如果这时LGWR也成功写入ORL中,则反馈给用户提交成功的信息。
在LNS传输的比较慢,或者redo log buffer比较小,redo产生的比较多时,在需要回收覆盖redo log buffer区域时,如果LNS没有传输完毕,是会引起等待故障的。

ASYNC
1、在主库,用户进行并提交一个事务,LGWR从SGA的redo log buffer中读取redo写到本地的ORL中,写完即反馈提交成功
2、LNS在SGA的redo log buffer中读取redo,通过network传输到备库,备库的RFS进程接收redo写入到备库的SRL中
在需要回收redo log buffer进行覆盖使用时,LNS会自动转到主库的ORL文件读取,在ORL文件切换较快时,中间产生的日志差距会由gap resolution进程传输。而LNS仍是传输主库的ORL中的redo到备库。
gap处理
1、主库的online redo log切换较快,在LNS读取传输头一个ORL的时候,发生了多次切换归档,这时的日志差异是由gap resolution解决。
2、在发生网络问题或者备库各种故障时,LNS暂停将redo传输到备库时,主库由于一直ORL日志切换产生归档,这时就会有日志文件差距。
3、在中断期间,主库上的ARCH进程会一直持续ping备库,在恢复通信后,ARCH ping进程会查询备库的standby control file(备库的RFS进程)来确定备库收到的最后一个完整的redo log,然后确定需要传输的日志后使用其他ARCH进程进行归档日志文件的传输
4、LNS恢复后会传输当前redo的数据,也就是主库SGA的redo log buffer中的redo或者ORL
5、MRP应用完归档后,会转而应用SRL(实时应用)
ARCH
11g中保留向后兼容的日志传输方法
用户进行并完成一个事务,产生的redo被LGWR写入到ORL中,当ORL进行切换产生归档时,ARCH将归档通过network传输到备库的RFS并写入到SRL中,如果没有SRL,则RFS直接将其放在备库的归档目录下。
GAP resolution时就是使用的ARCH传输架构。
ADG的active的意义
11g以前,启用了MRP数据库只能是mount状态,而以只读状态open数据库又必须禁用MRP,长时间禁用MRP后,主备又是处于一个不一致的状态,所以11g后的ADG中的active就是支持在只读open的情况下开启MRP,使得一些只读工作可以从主库移到备库中来。
最高性能模式
默认使用ASYNC,主库性能可用性不受以下影响:
1、redo传输不用确认
2、主备之间的连通性不用确认
不建议在最高性能模式下使用ARCH传输模式,数据保护级别更低,不具备性能优势。
此模式不保证数据丢失性,但性能最高。
最高可用模式
使用SYNC,主备之间不可连通时,等待若干时间,值由NET_TIMEOUT参数指定,超时仍无法通信时,放弃备库,主库开始继续处理事务。
在主备之间产生通信故障时,对于NET_TIMEOUT超时,LGWR和LNS断开连接(SYNC是需要LNS接受到备库的RFS传输的确认反馈后,由LNS传输给LGWR的这种联系存在),在当前ORL切换时,LGWR轮换到新的ORL,LGWR在必要时kill掉之前的LNS,启动一个新的LNS与备库进行连接,如果通信恢复,则LNS继续传输新的这个SRL的内容,如果还是通信失败,则继续以上过程,在此过程中,ORL切换时产生的多个未传输到备库的归档,会使用ARCH持续ping备库,直到再次连接成功为止,传输所需的归档到备库,当主备成功建立连接时,DG会在主库上强制进行一次log switch,目的是强行关闭当前ORL,重新启动一个LNS进程。
在整个过程中,仅在主备未恢复通信之前,主库又出现故障,这时才会可能丢失数据。性能折中,最大程度保证数据不丢失。
最大保护模式
使用SYNC,在主备之间不可连通时,NET_TIMEOUT也不会起作用,需要等待至少一个备库的确认反馈才会反馈提交给主库的用户,如果未收到至少一个备库的反馈信息,则主库会挂起。此模式保证没有数据丢失,性能最差。
PS:以上均为个人学习之后的理解,如有错误,恳请指正。
学习来源:《Oracle Data Guard 11g 完全参考手册》




