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)主数据库在将事务日志写入文件的同时就传送给辅助数据库。然后主数据库等待辅助数据库的回应。

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

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

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

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

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

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

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

alwayson的同步提交和异步提交相关推荐

  1. Kafka消费消息自动提交与手动提交

    消费者poll消息得过程(poll的意思是从broker拿消息,并不代表拿到就消费成功了) 消费者建立了与broker之间的⻓连接,开始poll消息. 默认一次poll 500条消息 props.pu ...

  2. kafka-offset手动提交和自动提交

    目录 首先回顾之前的知识点 自动提交offset 手动提交 消费者poll消息的细节 完整代码: 按照新方法进行消费消息 1.指定时间进行消息的消费 2.指定分区开始从头消费+指定分区的偏移量开始消费 ...

  3. ajax同步和异步提交的区别

    /**获取用户登录信息返回值:如果用户已登录返回登录信息,否则返回false */ function get_user_info() {var url = PUB_URL+"get_user ...

  4. jQuery.Form.js 异步提交表单使用总结

    jQuery.Form.js 是一个用于使用jQuery异步提交表单的插件,它使用方法简单,支持同步和异步两种方式提交. 第一步:引入jQuery与jQuery.Form.js 1 <scrip ...

  5. 【转】4.2使用jQuery.form插件,实现完美的表单异步提交

    传送门:异步编程系列目录-- 示例下载:使用jQuery.form插件,实现完美的表单异步提交.rar 抓住6月份的尾巴,今天的主题是 今天我想介绍的是一款jQuery的插件:Jquery.form. ...

  6. js异步提交form表单的解决方案

    1.定义异步提交表单的方法 (通用方法) /*** 异步提交form表单* @param options {form:form表单元素,success:执行成功后处理函数}* <span sty ...

  7. ajax异步提交 java_jquery ajax异步提交表单数据的方法

    使用jquery的ajax方法可以异步提交表单,成功后后台返回json数据,回调函数处理,可以不用刷新页面,达到异步的目的: 处理表单的数据可以用serialize()方法进行序列化,而如果提交的数据 ...

  8. ASP.NET MVC 第三章 异步提交数据

    好长时间都没写文章了本来不准备在写文章了,但是我又为什么今天发表文章咧,第一是为了我自己对技术的认识.第二是为了新手不知道怎么去学习MVC写次系列文章. 废话结束吧,接下来我们看看怎么异步实现提交数据 ...

  9. 关于异步提交form表单

    1.异步提交form 表单 方法一: 采用隐藏iframe来提交表单, 代码:<div id="upload_file"  title="<%=Res.Cul ...

最新文章

  1. 由于市场判断失误 希捷降低收入预期
  2. Nature Protocols:整合高通量组学数据集鉴定潜在机制联系的计算框架
  3. Matlab调用Java类访问数据库
  4. 【论文阅读整理】TagFi: Locating Ultra-Low Power WiFi Tags Using Unmodified WiFi Infrastructure
  5. SQL JOIN-Hash Join
  6. [CQOI 2006]线段树之简单题
  7. SAP Spartacus服务器端渲染模式下的调试方法
  8. 近十年数据库流行趋势纵览!存储计算分离、ACID 全面回归......
  9. Linux Kernel代码艺术——数组初始化
  10. DGPS与RTK的区别
  11. 「硬见小百科」几种镜像恒流源电路分析
  12. Python简单实现人脸识别检测, 对某平台美女主播照片进行评分排名
  13. U盘成为电脑头号杀手 是谁给U盘下毒
  14. 11月20日 如何在场景开启Debug,自定义AI任务,EQS,创建自己的环境任务,使用Pawn环境检测来检测周围的环境,让AI动作更顺滑(动画混合
  15. C语言中关于时间的函数详解(二)
  16. elasticjob shutdown 及remove job和server
  17. 05 python爬虫 (58同城项目)
  18. Ubuntu下无法打开终端
  19. centos7.9安装ifconfig命令
  20. 【 数据结构 】单链表的实现 - 详解(C语言版)

热门文章

  1. 最新apktool_2.4.1
  2. 2017西安网络赛B_Coin
  3. 笨办法学Python笔记2(ex18~ex40)
  4. Flowable Exclusive gateway has no outgoing sequence flow
  5. 文件服务器+权限+迁移,文件服务器文件夹,共享文件夹及权限迁移
  6. 软件开发详细设计说明书(转载)
  7. 关于 Elasticsearch 429 Too Many Requests 的 排查思考
  8. 初级——如何进行Android单元测试
  9. OpenCV钢铁平面焊接的缺陷检测案例
  10. IT界十年最重要10家公司排行榜