阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

部署AlwaysOn第三步:集群的资源组

207次阅读
没有评论

共计 3060 个字符,预计需要花费 8 分钟才能阅读完成。

资源组是由一个或多个资源组成的组,WSFC 的故障转移是以资源组为单位的,资源组中的资源是相互依赖的,相互关联。一个资源所依赖的其他资源必须和该资源处于同一个资源组,跨资源组的依赖关系是不存在的。在任何时候,每个资源组都仅属于集群中的一个结点,该结点就是资源组的活跃结点,由活跃结点为应用程序提供服务。AlwaysOn 的故障转移特性建立在 WSFC 的健康检测和故障转移的特性之上,因此,AlwaysOn 和故障转移集群有了不可分割的关系,理解他们的关系,有助于维护更好的维护 AlwaysOn。

一,可用性组是集群的资源组

AlwaysOn 的可用性组(Availability Group)是集群的资源组,其资源类型是“SQL Server Availability Group”,由于,WSFC 的故障转移是以资源组为单位的,因此,AlwaysOn 的每次故障转移都会将整个可用性组里的数据库一起转移。

1,查看集群的资源组

打开故障转移集群管理器(Failover Cluster Manager),选中集群结点,点开 Roles,集群的每个角色就是一个资源组,在右边的资源组监控器面板中,能够看到创建成功的可用性组 TestAG,角色类型(Type)是 Other;

部署 AlwaysOn 第三步:集群的资源组

2,资源组的故障转移属性

右击角色的属性,在 Failover Tab 中,查看集群的故障转移属性的设置,默认设置如下图:

  • 故障转移(Failover)属性:设置集群在指定的时间区间内执行故障转移的次数;
  • 故障恢复(Failback)属性 :设置集群在发生故障转移之后,把资源组 移回 到最优先节点;

两者的区别是:

  • 故障转移(Failover)是指 :出现故障后转移,集群把故障结点拥有的资源组 转移到 另一个可用的结点上;
  • 故障恢复(Failback)是指:出现故障后恢复,在发生故障转移之后,如果最优先结点恢复正常,把资源组 移回到 最优先节点;

部署 AlwaysOn 第三步:集群的资源组

3,切换到 General Tab

首选结点(Preferred Owners)选项的默认设置是勾选集群中的所有结点,优先顺序是从上到下,第一个勾选的结点是最优先结点(Most Preferred Owners)。

在发生故障转移之后,如果最优先结点恢复健康,那么故障恢复(Failback)将资源组移回到最优先选结点;

部署 AlwaysOn 第三步:集群的资源组

二,集群资源的属性

由于 AlwaysOn 可用性组建立在故障转移集群之上,Windows 集群负责监控 AlwaysOn 可用性组的健康状况。点击角色 TestAG 下方面板 Resource 选项卡,能够看到该资源组拥有两个资源:可用性组 TestAG 和 Listener。每个资源,都有 Status 标识该资源的健康状态。

部署 AlwaysOn 第三步:集群的资源组

1,SQL Server 可用性组资源的属性

TestAG 资源的类型是 SQL Server Availability Group,状态是 Online

部署 AlwaysOn 第三步:集群的资源组

2,切换到 Dependencies Tab,查看资源的依赖关系

资源组中的资源是相互依赖的,一个资源所依赖的其他资源必须和该资源处于同一个资源组,跨资源组的依赖关系是不存在的。资源 TestAG 和 资源 Server Name 之间是“and”的关系,这就是说,只有这两个资源都处于 Online 状态之后,整个资源组才处于 可用 的 Online 状态。

3,切换到 Policies Tab,查看资源出现故障时,集群监控器的响应策略

该选项卡的选项决定了资源发生故障转移时的行为,建议保留其默认设置,默认设置是当资源出现故障时,会在 15 分钟内尝试在当前结点重启(一般是立即尝试重启,不需要等待 15 分钟),第一次尝试重启失败,就会将整个资源组转移到其他的结点上。

部署 AlwaysOn 第三步:集群的资源组

4,切换到 Advanced Policies Tab

配置持有资源的集群结点,配置资源监控器(Resource Monitor)检测资源健康的时间间隔,WSFC 为了检测每个资源是否工作正常,会使用不同的时间间隔来做两种不同程度的检查,对于 SQL Server 可用组资源类型:

  • “Basic resource health check interval”称作“Looksalive check”,默认的时间间隔是 5s;
  • “Thorough resource health check interval”称作“Isalive check”,默认的时间间隔是 30s;

部署 AlwaysOn 第三步:集群的资源组

5,切换到 Properties Tab

查看和配置资源的私有属性,可用性组 HealthCheckTimeout 属性默认设置:30000ms,这就是说,每 30s,资源监控器都会对资源进行一次健康检测;

部署 AlwaysOn 第三步:集群的资源组

三,集群资源的健康检测

集群中的每个资源都有一个资源类型,WSFC 根据不同类型的资源,使用不同的方式进行 Isalive 和 Looksalive 检查,一般会把 SQL Server Availability Group 资源类型配置成“If resource fails, attempt restart on current node”和“If restart is unsuccessufll, fail over all resources in this service or application”模式,即在资源的 Policies 选项卡中勾选相应的选项:

Looksalive 检查:WSFC 检查活跃结点的 SQL Server 服务(Service Name 是 MSSQLServer)是否处于“启动状态”,根据 SQL Server Availability Group 资源的 Advance Polices 选项卡中的设置,这个检查默认每 5s 做一次;

Isalive 检查:WSFC 连接活跃结点,并在活跃结点中执行 TSQL 查询语句(select @@ServerName),如果活跃结点返回查询的结果,那么 Isalive 检查成功;如果活跃结点的 SQL Server 实例连接不上,或没有返回查询结果,那么 Isalive 检查失败,根据 SQL Server Availability Group 资源的 Advance Polices 选项卡中的设置,这个检查默认每 30s 做一次。

每执行 6 次 Looksalive 检查,就会执行一次 Isalive 检查,WSFC 之所以需要对 SQL Server 可用性组执行 Isalive 检查,是因为即使 SQL Server 服务处于正在运行(Running)状态,也不能说明 SQL Server 可以响应应用程序的请求,有时,可能整个 SQL Server 实例已经挂起,但是 SQL Server 服务的状态还是 Running,所以需要 Isalive 检查深入检查 SQL Server 的状态。此外,一旦 looksalive 检查失败,WSFC 就会立即执行 Isalive 检查。

如果 Isalive 检查失败,WSFC 会根据设置,重试 3~5 次 Isalive 检查。如果这些检查都失败了,WSFC 就根据 Polices 选项卡中的设置进行故障转移,由集群仲裁选举出新的主副本(Primary Replica),Listener 将 SQL Server 实例名和 IP 地址指向集群中新的主副本,由其该结点为应用程序继续提供服务,切换的过程是透明的。根据故障转移模式的不同,分为自动故障转移,手动故障转移和强制故障转移,详细信息请阅读《部署 AlwaysOn 第二步:配置 AlwaysOn,创建可用性组》。

参考文档:

《SQL Server 2012 实施与管理实战指南》第三章 PDF 下载见 http://www.linuxidc.com/Linux/2016-01/127450.htm

本文永久更新链接地址:http://www.linuxidc.com/Linux/2017-01/139842.htm

正文完
星哥玩云-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-21发表,共计3060字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中