alwayson的同步提交和异步提交

1.2 同步提交与异步提交
2016-6-1 高可用性数据库

1.2.1 日志传输
AlwaysOn 可用性组、数据库镜像等解决方案须要为主数据库创建一个或多个“热备用”或“温备用”的辅助副本,所以须要在主数据库和辅助副本之间传送数据。缓存

SQL Server 2005 SP1 引入了数据库镜像技术经过 TCP 5022 端口在各个节点计算机之间进行日志传输。辅助副本收到了“新的”事务日志后,先进行harden(固化),再执行 redo,从而保证各节点之间的数据一致。 安全

在这种日志传输的工做模式中,主节点将有2个进程:一个进程收集事务日志;另外一个进程监视日志传输。辅助节点也有2个进程:一个进程接收日志;另外一个进程监视 redo。服务器

根据主数据库是否等待辅助副本 harden 反馈信息,同步模式分为同步提交和异步提交。网络

1.2.2 同步提交模式
同步提交时,须要通过一系列的过程。异步

(1)主数据库在将事务日志写入文件的同时就传送给辅助数据库。而后主数据库等待辅助数据库的回应。ide

(2)辅助数据库收到了来自主数据库的事务,写入本地事务日志文件(固化),而后发送确认信息给主数据库。性能

(3)主数据库收到辅助数据库发来的确认信息,结束等待状态,继续运行。日志

(4)主数据库在遇到检查点时才将缓存中的“脏页”回写到数据文件;辅助数据库根据收到的事务在本地进行重作(Re-do)。进程

同步提交模式能够保证时刻拥有着如出一辙的副本,所以具备极高的安全性。可是辅助服务器接收事务日志、写入事务日志文件和发送确认信息这一系列过程也会带来必定程度的延迟,从而影响到主数据库的性能。

因为同步提交对性能影响较大,所以 SQL Server 仅容许单向的同步提交(从一个主副本单向同步到多个辅助副本)。并且,SQL Server 严格限制了同步提交的副本数量,AlwaysOn 可用性组的一个主副本最多能够同时向 2 个辅助副本实现同步提交,其余副本则使用异步提交模式。。

1.2.3 异步提交模式
异步提交时,主数据库将事务发送给辅助数据库后,无需等待而直接继续运行。

异步提交模式消除了主数据库的等待状态,所以这种提交模式对性能几乎没有影响。可是辅助数据库可能遇到更新数据失败的状况(例如,因网络故障致使未接受主数据库的事务,或写入本地事务日志日志文件时遇到错误),而此时主数据库若是发生故障则可能形成数据丢失。

相关文章
相关标签/搜索