15.4 故障转移

15.4 故障转移


15.4.1 自动故障转移

  AlwaysOn 故障转移群集实例(FCI)利用 Windows Server 故障转移群集 (WSFC) 功能通过冗余在实例级别提供了本地高可用性。

  在 FCI 中,一次只能有一个节点拥有 WSFC 资源组(包括SQL Server 数据库文件)并且运行着 SQL Server 服务,此节点称为活动节点;其余节点都是备用节点,备用节点未能获得运行 SQL Server 所需的资源(例如,数据文件)因此未运行 SQL Server 服务。 

  在 FCI 运行过程中,WSFC 服务定期检查节点的健康状况。根据预先定义的故障转移策略,如果某个节点出现故障(硬件故障、操作系统故障、应用程序或服务故障)或进行计划的升级时,该资源组的所有权就会转移至另一个 WSFC 节点。新的活动节点立即启动 SQL Server 服务并接管原有的客户端连接。

  故障转移的过程对于连接到 FCI 的客户端或应用程序是透明的,可以最大限度地缩短出现故障时应用程序或客户端的停机时间。



15.4.2 手动故障转移

  在“故障转移群集管理器”控制台,选择一个资源组,在右键菜单中选择“移动”、“选择节点”,准备将角色(或服务)移动到另一个节点。

wKioL1V3ohfy3DWPAAOBBsGZ3vA769.jpg


  在“移动群集角色”对话窗口,选择目标节点。单击“确定”按钮,开始执行手动故障转移。

wKiom1V3oHLy_QXiAAERaQFXhQY027.jpg


  在转移过程中,通过观察“状态”和“所有者节点”的变化,可以看到 AlwaysOn 故障转移群集是如何从一个节点转移到另一个节点。

wKioL1V3oiexWXkhAAFtMca7JsY896.jpg



15.4.3 修改资源名称

  可以通过故障转移群集管理器修改资源的名称,例如,修改虚拟网络名称或其IP地址。

  在“角色”详细页面下方的窗格中选择“资源”选项卡,在“服务器名称”中选择角色名称,然后在右键菜单中选择“属性”。

wKiom1ZpKPeg8SU7AAFxjTuWO_s547.png

  可以直接在属性窗口修改该角色的“DNS名称”。选择一个 IP 地址,再单击“编辑”,即可修改该角色的 IP 地址。

    也可以直接在“资源”选项卡中选择 IP 地址,然后在右键菜单中选择“属性”,即可直接进入修改 IP 地址的属性窗口。修改 IP 地址会导致当前使用此 IP 地址的客户端的服务中断。

  修改了角色的DNS名称之后,应当将此角色脱机,然后再联机。



15.4.4 资源运行状况健康检查

  WSFC 对于 SQL Server 资源有以下两种健康检查方法。

(1) 资源运行状况基本检查

  这是基本的健康状态检查,调用了 looksalive 方法。它通过服务控制管理器(SCM)来检查 SQL Server 服务在活动节点是否处于“启动状态”,默认每隔5秒检查一次。


(2) 资源运行状况彻底检查

  它通过调用 isalive 方法,每隔60秒执行一次 select @@servername。如果 WSFC 接收到返回的结果,则说明此资源目前处于正常状态;反之,则说明资源已经发生故障。这种方法可能发生“误判”,例如,SQL Server 如果处于较高的负载而不能在 60 秒内响应,会导致 WSFC 认为该资源已经发生故障。为解决这个问题,SQL Server 2012 引入了新的检查方法,即以存储过程 sp_server_diagnostics 代替旧版的查询语句。

  存储过程 sp_server_diagnostics 将返回详细的诊断结果,SQL Server 利用内部算法来处理这些结果,然后从多个维度来评价资源的健康状况(系统、资源、查询、IO等),从而作为 WSFC 判断是否需要进行故障转移的依据。

  执行 sp_server_diagnostics 的线程使用抢占模式,且线程的 OS 优先级也高于普通线程。此线程每隔20秒执行一次,如果3次(60秒)都获得非常糟糕的结果,就可能发生故障转移。


  打开 FCI 的属性窗口,选择“高级策略”选项卡,可以为上述两种健康检查设置时间间隔。一般采用默认即可。



本文出自 “SQL Server 管理员指南” 博客,谢绝转载!

你可能感兴趣的:(故障转移,群集)