[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假设你的可用性组有同步的健康问题.很多情况下这 ...
随机推荐
- Tcp/ip 报文解析
在编写网络程序时,常使用TCP协议.那么一个tcp包到底由哪些东西构成的呢?其实一个TCP包,首先需要通过IP协议承载,而IP报文,又需要通过以太网传送.下面我们来看看几种协议头的构成 一 .Ethe ...
- Java8实战分享
虽然很多人已经使用了JDK8,看到不少代码,貌似大家对于Java语言or SDK的使用看起来还是停留在7甚至6. Java8在流式 or 链式处理,并发 or 并行方面增强了很多,函数式的风格使代码可 ...
- .NET 对接JAVA 使用Modulus,Exponent RSA 加密
最近有一个工作是需要把数据用RSA发送给Java 虽然一开始标准公钥 net和Java RSA填充的一些算法不一样 但是后来这个坑也补的差不多了 具体可以参考 http://www.cnblogs. ...
- 手动添加kdump
背景: Linux嵌入式设备内核挂死后,无法自动重启,需要手动重启.而且如果当时没有连串口的话,就无法记录内核挂死时的堆栈,所以需要添加一种方式来记录内核挂死信息方便以后调试使用.设备中增加k ...
- Java 堆内存与栈内存异同(Java Heap Memory vs Stack Memory Difference)
--reference Java Heap Memory vs Stack Memory Difference 在数据结构中,堆和栈可以说是两种最基础的数据结构,而Java中的栈内存空间和堆内存空间有 ...
- Python(九)Tornado web 框架
一.简介 Tornado 是 FriendFeed 使用的可扩展的非阻塞式 web 服务器及其相关工具的开源版本.这个 Web 框架看起来有些像web.py 或者 Google 的 webapp,不过 ...
- [原] KVM虚拟机网络闪断分析
背景 公司云平台的机器时常会发生网络闪断,通常在10s-100s之间. 异常情况 VM出现问题时,表现出来的情况是外部监控系统无法访问,猜测可能是由于系统假死,OVS链路问题等等.但是在出现网络问题的 ...
- [原创]java使用JDBC向MySQL数据库批次插入10W条数据测试效率
使用JDBC连接MySQL数据库进行数据插入的时候,特别是大批量数据连续插入(100000),如何提高效率呢?在JDBC编程接口中Statement 有两个方法特别值得注意:通过使用addBatch( ...
- animate.css(第三方动画使用方法)
p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 17.0px Monaco; color: #a5b2b9 } animation 语法: animatio ...
- BPM配置故事之案例9-根据表单数据调整审批线路2
老李:好久不见啊,小明. 小明:-- 老李:不少部门有物资着急使用,现在的审批流程太慢了,申请时增加一个是否加急的选项吧.如果选加急,金额1000以下的直接到我这里,我审批完就通过,超过1000的直接 ...