一个磁盘I/O故障导致的AlwaysOn FailOver 过程梳理和分析

下面是我们在使用AlwaysOn过程中遇到的一个切换案例。这个案例发生在2014年8月,虽然时间相对久远了,但是对我们学习理解AlwaysOn的FailOver原理和过程还是很有帮助的。本次FailOver的触发原因是系统I/O问题。大家需要理解,操作系统I/O出现了问题不一定立即触发SQL Server发生漂移,因为坏的槽点可能不在SQL Server实例所用到的位置,但是随着时间持续 和数据堆积,问题槽点可能扩大升级。我们可以看到在本例中,第一次出现I/O问题到SQL Server 漂移间隔了16分钟,所以大家不要奇怪。我们重点可以FailOver的过程和触发条件设置上,即文章的第二和第三部分。

一 . 系统 I/O 异常 Log追踪 

1.1  10:36:12 发现I/O异常

 

一个磁盘I/O故障导致的AlwaysOn FailOver 过程梳理和分析

1.2   10:45:43    显示个别读写花费时间较长

一个磁盘I/O故障导致的AlwaysOn FailOver 过程梳理和分析

1.3  10:45:28 看似I/O严重

一个磁盘I/O故障导致的AlwaysOn FailOver 过程梳理和分析

1.4   10:52:20 出现个别连接Fail现象

(查看表中的最后一笔数据显示为10:53:17

一个磁盘I/O故障导致的AlwaysOn FailOver 过程梳理和分析

 

 . AlwaysOn FailOver 过程

2.1 系统提示需要FailOver

一个磁盘I/O故障导致的AlwaysOn FailOver 过程梳理和分析

 

2.2 高可用性组的本地副本需要离线。

一个磁盘I/O故障导致的AlwaysOn FailOver 过程梳理和分析

(相关知识:Lease expired event from the cluster. Possible causes include loss of lease, possible network issues and sp_server_diagnostic query timeout. )

2.3 错误提示信息显示,SQL Instance和WSFC连接异常。

一个磁盘I/O故障导致的AlwaysOn FailOver 过程梳理和分析

2.4 可用性副本的角色发生变换。

一个磁盘I/O故障导致的AlwaysOn FailOver 过程梳理和分析

 

2.5 角色为RESOLVING无法访问DB

一个磁盘I/O故障导致的AlwaysOn FailOver 过程梳理和分析

相关知识:When the role of an availability replica is indeterminate, such as during a failover, its databases are temporarily in a NOT SYNCHRONIZING state. Their role is set to RESOLVING until the role of the availability replica has resolved.)

此时: 通过SSMS管理器,连接数据也是不可以访问的,显示状态为不同步了。

一个磁盘I/O故障导致的AlwaysOn FailOver 过程梳理和分析

三 . 相关知识点

3.1:什么是resourceDell?resourceDell的用途?

由于AlwaysOn可用性组是建立在Windows故障转移群集之上的,Alwayson可用性组需要一个群集resourceDell来连接Windows群集和SQLServer实例。由于可用性组是一个群集资源,Windows群集需要透过AlwaysOn的resourceDell来控制资源的上线/离线,检查资源是否失败,更改资源的状态和属性,以及发生各种命令给可用性副本实例。(AlwaysOn可用性组的资源类型是“SQLServer Availability Group”)

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zygsfg.html