服务状态

Microsoft.SQLServer.2016.AnalysisServices.UnitMonitor.Instance.ServiceState (UnitMonitor)

当 SSAS 实例的 Windows 服务处于未运行状态的持续时间大于配置的阈值时,监视器将发出警报。

Knowledge Base article:

摘要

当 SSAS 实例的 Windows 服务处于未运行状态的持续时间大于配置的阈值时,监视器将发出警报。

原因

当此监视器报告“SQL Server Analysis Service Windows 服务未运行”警报时,表示 SSAS 实例已配置为自动启动,但在超过配置阈值的持续时间内保持“已停止”状态。默认配置值为 900 秒(15 分钟)。

服务停止时,监视器在配置持续时间之前不会触发警报。这允许管理员在不触发警报的情况下重启服务。但随后即使服务在配置的持续时间内未切换到运行状态,也将触发警报。

即使已配置为自动启动,SSAS Windows 服务也可能会因很多原因无法启动,这些原因包括进程无法启动、阻止成功启动的操作系统问题或服务帐户身份验证失败。

解决方法

解决此警报要求管理员了解并考虑多个因素,包括正常的预期实例启动时间、服务意外无法启动的原因、服务器身份验证要求以及环境中的状况。

实例的启动时间可能会有所不同,具体取决于数据库大小和其他因素。管理员可以相应地配置此设置,以相应调整给定 SSAS 实例的正常预期启动时间。

修复 SSAS 服务未启动(或尝试时无法启动)的状况的操作包括:

外部

启动和停止 SQL 服务

可替代参数

名称

说明

默认值

仅当服务启动类型为“自动”时发出警报

该值仅可设置为 "True" 或 "False"。如果设置为 "False",则无论启动类型设置为何值,都会触发警报。默认值为 "True"。

已启用

启用或禁用工作流

生成警报

定义工作流是否生成警报

间隔(秒)

运行工作流的重复间隔时间(秒)。

60

样本数

如果后续检查失败数大于或等于最小检查数,运行状况将发生更改。

15

同步时间

使用 24 小时格式指定的同步时间。可以忽略。

 

超时(秒)

指定允许工作流在被关闭并标记为失败之前运行的时间。

300

Element properties:

TargetMicrosoft.SQLServer.2016.AnalysisServices.Instance
Parent MonitorSystem.Health.AvailabilityState
CategoryAvailabilityHealth
EnabledTrue
Alert GenerateTrue
Alert SeverityError
Alert PriorityNormal
Alert Auto ResolveTrue
Monitor TypeMicrosoft.SQLServer.2016.AnalysisServices.MonitorType.Instance.ServiceState
RemotableTrue
AccessibilityPublic
Alert Message
SSAS 2016: SQL Server Analysis Service Windows 服务未运行
SSAS 实例 {1} 的 Windows 服务未在计算机 {0} 上运行的持续时间大于指定的阈值。
RunAsDefault

Source Code:

<UnitMonitor ID="Microsoft.SQLServer.2016.AnalysisServices.UnitMonitor.Instance.ServiceState" Accessibility="Public" Enabled="true" Target="SQLAS!Microsoft.SQLServer.2016.AnalysisServices.Instance" ParentMonitorID="SystemHealth!System.Health.AvailabilityState" Remotable="true" Priority="Normal" TypeID="Microsoft.SQLServer.2016.AnalysisServices.MonitorType.Instance.ServiceState" ConfirmDelivery="false">
<Category>AvailabilityHealth</Category>
<AlertSettings AlertMessage="Microsoft.SQLServer.2016.AnalysisServices.UnitMonitor.Instance.ServiceState.AlertMessage">
<AlertOnState>Error</AlertOnState>
<AutoResolve>true</AutoResolve>
<AlertPriority>Normal</AlertPriority>
<AlertSeverity>Error</AlertSeverity>
<AlertParameters>
<AlertParameter1>$Target/Host/Property[Type="Windows!Microsoft.Windows.Computer"]/NetworkName$</AlertParameter1>
<AlertParameter2>$Target/Property[Type="SQLAS!Microsoft.SQLServer.2016.AnalysisServices.ServerRole"]/InstanceName$</AlertParameter2>
</AlertParameters>
</AlertSettings>
<OperationalStates>
<OperationalState ID="Success" MonitorTypeStateID="Running" HealthState="Success"/>
<OperationalState ID="Error" MonitorTypeStateID="NotRunning" HealthState="Error"/>
</OperationalStates>
<Configuration>
<ComputerName>$Target/Host/Property[Type="Windows!Microsoft.Windows.Computer"]/NetworkName$</ComputerName>
<ServiceName>$Target/Property[Type="SQLAS!Microsoft.SQLServer.2016.AnalysisServices.Instance"]/ServiceName$</ServiceName>
<ClusteredInstance>$Target/Property[Type="SQLAS!Microsoft.SQLServer.2016.AnalysisServices.Instance"]/Clustered$</ClusteredInstance>
<CheckStartupType>true</CheckStartupType>
<SampleCount>15</SampleCount>
<IntervalSeconds>60</IntervalSeconds>
<SyncTime/>
<TimeoutSeconds>300</TimeoutSeconds>
</Configuration>
</UnitMonitor>