[AlwaysOn Availability Groups]健康模型 Part 1——概述
健康模型概述
在成功部署AG之后,跟踪和维护健康状况是很重要的。
1.AG健康模型概述
AG的健康模型是基于策略管理(Policy Based Management PBM)的。如果不熟悉这个特性,可以查看:使用基于策略的管理来管理服务器
PBM的核心是策略,策略有以下部分组成:
1.目标,策略运行在有一组或者一个对象上。
2.条件,条件是bool表达式,指定目标的状态。如果条件false,就会发生错误。
3.归类,归类是对策略的简单归类
一旦你定义了一个策略,PBM会提供引擎来执行这些策略,获取结果。健康模型的核心是收集BPM策略,可以再管理->策略->系统策略里面找到。策略使用的条件可以查看管理->策略->条件->系统条件。
所有策略并不是相同的,有些策略错误比其他策略要严重的多。为了支持这个,我们提供了PBM的归类机制。重要的策略会放入Error归类,不太重要的会放入Warning。
当策略执行计算目标的健康:
1.执行对象上所有的策略。
2.如果有策略是在Error归类上,那么报告对象错误
3.如果是Warning归类,那么报告对象警告状态
4.否则就是健康的。
这个时候,计算AG的健康,会对涉及的相关对象全部执行一遍策略,可用副本,可用数据库,AG,AG所在发服务。不仅仅是AlwaysOn dashboard上的行为,在所有对象上执行策略,然后组织结果,还可以使用Powershell的命令 Test-SqlAvailabilityGroup, Test-SqlAvailabilityReplica, 和 Test-SqlDatabaseReplicaState
来访问健康模型。
2. 健康模型在哪里运行
AlwayOn是多服务系统,问题就是,这些服务在哪里运行?答案是通常在当前primary副本上运行。因为primary副本有所有的必要的用来计算健康状况的数据。Secondary副本只知道自己的和primary的健康状况。这就是hub and
spoke模型

当然然也可以在secondary上评估副本,策略在本地对象上运行,但是总体的结果会是unknown。因为健康模型报告无法准确的确定AG的状态,因为数据不够。

3.AlwaysOn健康模型归类
注意我们使用PBM的归类(category)机制来判断一个策略的敏感程度。但是不单单如此,我们也基于对象类型使用归类来组织策略。不仅如此,我们也把这些归档作为探索机制。当确定使用什么策略,健康模型明确的查找这些归类中的策略。在发布2012的时候,定义了8个归类,每个不同目标类型,都有2个error和warning归类。列表如下:
1.Availability database errors\Availability database warnings
在这个归类下的策略的对象是可用数据库。相关的方面是Database
Replica State
2. Availability group errors (any replica role)\ Availability group warnings
(any replica role)
在这些归类的策略使用在可用组上。Any
replica role表示这些策略可以可以运行在AG的任意副本上。比如在secondary上运行dashborad,这个归类下的策略就会被评估。注意这个归类下的有些策略目标是服务对象。有必要去验证WSFC集群的属性。相关方面:Availability
Group State,Server。
3. Availability group errors (primary replica only)\ Availability group
warnings (primary replica only)
这个归类内的策略用于AG,但是要运行在primary副本上
4. Availability replica errors\ Availability replica warnings
这个归类的策略是运行在可用副本的。相关方面Availability Replica
下面介绍dashboard的各个部分:
1.dashboard的AG部分
这个部分由4个归类:
1.Availability Group errors(any replica role)
2.Availability Group warnings(any replica role)
3.Availability Group errors(primary replica role)
4.Availability Group Warnings(primary replica role)
注意如果你从secondary运行dashboard,只有前面2个归类会被考虑。如图就表示有1个严重错误和2个警告,表示有一个error归类的策略报错,和2个warning归类的策略报错。如果点击高亮部分可以获得详细错误信息。

2.Availability Replicas部分

健康状态计算使用2个策略归类,Availability
replica errors\ Availability replica warnings。当dashboard在secondary上运行,只能看到本地的可用副本。通过点击warning可以获得详细的错误信息。
3.可用数据库部分

可用数据库的健康状态的计算使用2个策略归类Availability
database errors\Availability database warnings。当dashboard在secondary副本,你只能查看本地数据库。
[AlwaysOn Availability Groups]健康模型 Part 1——概述的更多相关文章
- [AlwaysOn Availability Groups] 健康模型 Part 2 ——扩展
健康模型扩展 第一部分已经介绍了AlwayOn健康模型的概述.现在是创建一个自己的PBM策略,然后设置为制定的归类.创建这些策略,创建之后修改一下配置,dashboard就会自动评估这些策略. 场景, ...
- [AlwaysOn Availability Groups]AG排查和监控指南
AG排查和监控指南 1. 排查场景 如下表包含了常用排查的场景.根据被分为几个场景类型,比如Configuration,client connectivity,failover和performance ...
- [AlwaysOn Availability Groups]DMV和系统目录视图
DMV和系统目录视图 这里主要介绍AlwaysON的动态管理视图,可以用来监控和排查你的AG. 在AlwaysOn Dashboard,你可以简单的配置的GUI显示很多可用副本的DMV和可用数据库通过 ...
- [AlwaysOn Availability Groups]排查:AG配置
排查AG配置 本文主要用来帮助排查在AG配置时出现的问题,包括,AG功能被禁用,账号配置不正确,数据库镜像endpoint不存在,endpoint不能访问. Section Description A ...
- [SQL in Azure] Tutorial: AlwaysOn Availability Groups in Azure (GUI)
http://msdn.microsoft.com/en-us/library/azure/dn249504.aspx Tutorial: AlwaysOn Availability Groups i ...
- [AlwaysOn Availability Groups]使用Powershell监控AlwayOn健康
使用Powershell监控AlwayOn健康 1.基本命令概述 AlwayOn Dashboard是很有用的查看整体AG健康状况的工具.但是这个工具不是用于7*24监控的.如果应用程序夜间发送严重的 ...
- [AlwaysOn Availability Groups]AlwaysOn健康诊断日志
AlwaysOn健康诊断日志 为了监控primary可用副本的健康状况,SQL Server资源DLL使用SQL Server2012的过程sp_server_diagnostics. SQL Ser ...
- [AlwaysOn Availability Groups]监控AG性能
监控AG性能 AG的性能的性能方面,在关键任务数据库上进行语句级维护性能是很重要的.理解AG如何传输日志到secondary副本对评估RTO和RPO,表明AG是否性能不好. 1. 数据同步步骤 为了评 ...
- [AlwaysOn Availability Groups]排查:Primary上的修改无法在Secondary体现
排查:Primary上的修改无法在Secondary体现 客户端进程在primary上修改成功,但是在Secondary上却无法看到修改结果.这个case假设你的可用性组有同步的健康问题.很多情况下这 ...
随机推荐
- NodeJs之Path
Path模块 NodeJs提供的Path模块,使得我们可以对文件路径进行简单的操作. API var path = require('path'); var path_str = '\\Users\\ ...
- Mono为何能跨平台?聊聊CIL(MSIL)
前言: 其实小匹夫在U3D的开发中一直对U3D的跨平台能力很好奇.到底是什么原理使得U3D可以跨平台呢?后来发现了Mono的作用,并进一步了解到了CIL的存在.所以,作为一个对Unity3D跨平台能力 ...
- ABP文档 - EntityFramework 集成
文档目录 本节内容: Nuget 包 DbContext 仓储 默认仓储 自定义仓储 特定的仓储基类 自定义仓储示例 仓储最佳实践 ABP可使用任何ORM框架,它已经内置了EntityFrame(以下 ...
- 在docker中运行ASP.NET Core Web API应用程序(附AWS Windows Server 2016 widt Container实战案例)
环境准备 1.亚马逊EC2 Windows Server 2016 with Container 2.Visual Studio 2015 Enterprise(Profresianal要装Updat ...
- ASP.NET MVC5+EF6+EasyUI 后台管理系统(64)-补充WebApi与Unity注入-配置文件
系列目录 上一篇演示了WebApi利用Unity注入 很多人问我如何用配置文件来配置注入,本节演示如何利用配置文件来注入,道理是一样的,跳转到上一节下载源码一起来动手! 1.打开源码定位到文件Depe ...
- spring注解源码分析--how does autowired works?
1. 背景 注解可以减少代码的开发量,spring提供了丰富的注解功能.我们可能会被问到,spring的注解到底是什么触发的呢?今天以spring最常使用的一个注解autowired来跟踪代码,进行d ...
- AFNetworking 3.0 源码解读 总结(干货)(上)
养成记笔记的习惯,对于一个软件工程师来说,我觉得很重要.记得在知乎上看到过一个问题,说是人类最大的缺点是什么?我个人觉得记忆算是一个缺点.它就像时间一样,会自己消散. 前言 终于写完了 AFNetwo ...
- C++ 11 多线程--线程管理
说到多线程编程,那么就不得不提并行和并发,多线程是实现并发(并行)的一种手段.并行是指两个或多个独立的操作同时进行.注意这里是同时进行,区别于并发,在一个时间段内执行多个操作.在单核时代,多个线程是并 ...
- PHP设计模式(一)简单工厂模式 (Simple Factory For PHP)
最近天气变化无常,身为程序猿的寡人!~终究难耐天气的挑战,病倒了,果然,程序猿还需多保养自己的身体,有句话这么说:一生只有两件事能报复你:不够努力的辜负和过度消耗身体的后患.话不多说,开始吧. 一.什 ...
- iOS之App Store上架被拒Legal - 5.1.5问题
今天在看到App Store 上架过程中,苹果公司反馈的拒绝原因发现了这么一个问题: Legal - 5.1.5 Your app uses background location services ...