SQL Server误区30日谈 第11天 镜像在检测到故障后瞬间就能故障转移

 更新时间:2013年01月09日 19:54:23   作者:  
数据库镜像的故障转移既可以自动发起,也可以手动发起

误区 #11:镜像在检测到故障后瞬间就能故障转移

错误

    数据库镜像的故障转移既可以自动发起,也可以手动发起。

    在自动发起的情况下,是由镜像服务器执行故障转移操作(你没有看错,并不是由见证服务器来做故障转移的决定),在见证服务器和镜像服务器都发现无法和主体服务器交换信息(这个过程被称为”形成仲裁”,译者注:也就是通过程序对集群进行监管,集群可用的依据来自监管程序的算法,比如根据:每个节点的配置,文件共享情况,磁盘访问情况,每个节点的可用性等来确定集群是否可用)并且镜像方式是同步时,可以进行故障转移。(译者注:所谓的同步指的是主体服务器必须等待镜像服务器的日志写入后,才能够提交事务。相对异步来说性能更差,但更安全,并且还不需要SQL Server是企业版)。

    手动故障转移是由你发起的,手动发起可能是由于不存在见证服务器(以至于无法“形成仲裁”),或是在主体服务器现在问题时镜像的运行模式不是“同步”。

    当主体服务器发生故障时,镜像服务器在日志队列Redo完成之前不会上线(所谓的日志队列就是由主体服务器传送到镜像服务器的日志,但还没有在镜像服务器Replay)。即使你镜像的运行模式是同步,也仅仅只能说明日志被写入镜像磁盘,但不能保证日志在镜像服务器被重放。而对于故障转移来说,镜像服务器必须经历Roll Forward阶段才能够上线.但Roll Back阶段是镜像上线后才会做的。

    在SQL Server标准版以及企业版所在的CPU低于5个内核,Roll Forward只有一个线程。对于企业版并且CPU多余5核,为每4个核分配一个Roll Forward线程。所以完全可以看出故障转移所需的时间取决于需要对日志进行Redo处理的队列大小,CPU的核数,以及镜像服务器的负载。

    由于大家都认为镜像工作在同步方式时可以迅速进行故障转移,所以很少有人检测日志Redo队列。但由于Redo队列的大小确定了故障转移时Downtime的大小,所以检测镜像服务器Redo队列变得十分重要。

    有关这里更细节的文章,你可以参看:Estimating the Interruption of Service During Role Switching

相关文章

  • mybatis动态sql常用场景总结

    mybatis动态sql常用场景总结

    在平时开发中针对动态sql经常会使用到,为了加深对动态sql的熟练度,小编给大家分享一篇教程关于mybatis动态sql常用场景总结,需要的朋友可以参考下
    2021-08-08
  • SQL Server数据库附加失败的解决办法

    SQL Server数据库附加失败的解决办法

    这篇文章主要为大家详细介绍了SQL Server数据库附加失败,错误3415、错误5120的解决办法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-03-03
  • SQL 导入导出Excel数据的语句

    SQL 导入导出Excel数据的语句

    从Excel文件中,导入数据到SQL数据库中,很简单
    2009-11-11
  • Zabbix监控SQL Server服务状态的方法详解

    Zabbix监控SQL Server服务状态的方法详解

    这篇文章主要给大家介绍了关于Zabbix监控SQL Server服务状态的相关资料,文中通过图文介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-10-10
  • SQL Server中锁的用法

    SQL Server中锁的用法

    这篇文章介绍了SQL Server中锁的用法,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-05-05
  • 详解SQL Server数据库架构和对象、定义数据完整性

    详解SQL Server数据库架构和对象、定义数据完整性

    本篇文章详细讲解了SQL Server的主键约束、唯一约束和外键约束这一块。图文并茂,方便大家理解与学习。有兴趣的朋友可以看下
    2016-12-12
  • MSSQL数据类型及长度限制详细说明

    MSSQL数据类型及长度限制详细说明

    在 Microsoft® SQL Server™ 中,每个列、局部变量、表达式和参数都有一个相关的数据类型,这是指定对象可持有的数据类型(整型、字符、money 等等)的特性。
    2008-08-08
  • Sql注入工具_动力节点Java学院整理

    Sql注入工具_动力节点Java学院整理

    这篇文章主要为大家详细介绍了Sql注入工具的相关资料,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-08-08
  • 一些有用的sql语句整理 推荐收藏

    一些有用的sql语句整理 推荐收藏

    一些有用的sql语句整理,学习sqlserver的朋友可以参考下。一些很常用的命令。建议大家收藏下。
    2011-03-03
  • SQL优化基础 使用索引(一个小例子)

    SQL优化基础 使用索引(一个小例子)

    一年多没写,偶尔会有冲动写几句,每次都欲写又止,有时候写出来就是个记录,没有其他想法,能对别人有用也算额外的功劳
    2012-01-01

最新评论