异步传输(asynchronous transport,ASYNC)与SYNC 的不同之处在于,LGWR 不必
等待来自LNS 的确认消息,无论主数据库与备用数据库相距多远,都几乎不会影响到主
数据库的性能。
即使由于带宽有限,使得先前事务的重做数据不能立即传给备用数据库,LGWR 也
将继续确认提交操作成功完成(可以联想到一个水池,其注水速度比排水速度快)。如果
LNS 赶不上进度,在将重做数据传给备用数据库前就回收了日志缓冲区,LNS 将自行转
为从ORL 读取和发送重做数据(从Data Guard 11g 开始提供此项功能)。当LNS 赶上进度
后,将自行转回到直接从日志缓冲区中读取/发送。
如果ASYNC 重做传输的速度落后到在日志切换时LNS 还在读取ORL 的程度,LNS
将继续执行操作,直到发送完原ORL 的内容为止。此后会平滑转回到从当前联机日志文
件读取/发送。当LNS 赶上LGWR 的进度时,会平滑转回到从重做日志缓冲区读取/发送。
在极少数情况下,在LNS 发送完原ORL 之前就发生了两次或更多次日志切换,而
LNS 仍返回读取当前联机日志文件的内容。在原ORL 和当前ORL 之间归档的任何ORL
将由Data Guard 的间隔处理(gap resolution)进程负责传输;稍后的“自动处理间隔”一节
将介绍该进程。注意,如果这种“罕见情况”频频出现,很可能表明没有足够大的带宽
来传输重做数据流。
ASYNC 传输行为使得主数据库缓存大量重做数据,这称作传输滞后(transport lag),
但不会终止传输也不影响可用性。虽然ASYNC LNS 读取ORL 造成的相关I/O 开销会轻
微影响主数据库的性能,但与高延迟网络上SYNC 的潜在性能影响相比,这是微不足道
的。比较图1-4 和图1-3 可明显看到,ASYNC 比较简洁。ASYNC 唯一的不足之处是增
加了数据损失风险。如果某个故障破坏了主数据库,而此时传输滞后尚未降至0,那么
传输滞后所包含的任何已提交事务都将丢失。使用ASYNC 时,提供足够大的网络带宽
来处理峰值期间高速生成的重做数据,可以最大限度地降低数据损失风险。
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




