名站网址导航为大家提供关于数据库教程相关的教程网站知识。
SQL Server误区30日谈 第10天 网站数据库镜像在故障发生后 马上就能
误区 #11:镜像在检测到故障后瞬间就能故障转移
错误
网站数据库镜像的故障转移既可以自动发起,也可以手动发起。
在自动发起的情况下,是由镜像站点服务器执行故障转移操作办法(您没有看错,并不是由见证站点服务器来做故障转移的决定),在见证站点服务器和镜像站点服务器都发现无法和主体站点服务器交换信息(这个过程被称为”形成仲裁”,译者注:也就是通过程序对集群进行监管,集群可用的依据来自监管程序的算法,比如根据:每个节点的配置,网站网站文件共享情况,磁盘访问情况,每个节点的可用性等来确定集群是否可用)并且镜像相关方式是同步时,可以进行故障转移。(译者
手动故障转移是由您发起的,手动发起可能是由于不存在见证站点服务器(以至于无法“形成仲裁”),或是在主体站点服务器现在问题时镜像的运行模式不是“同步”。
当主体站点服务器发生故障时,镜像站点服务器在日志队列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
关于数据库教程相关的教程网站知识今天我们就说到这里了,希望可以帮到大家。





