Состояние базы данных

Microsoft.SQLServer.Windows.Monitor.Database.DBStatus (UnitMonitor)

Этот монитор проверяет состояние базы данных по данным Microsoft SQL Server.

Knowledge Base article:

Сводка

Этот монитор проверяет состояние базы данных, предоставленное Microsoft SQL Server. Это делается путем выполнения запроса к основной базе данных экземпляра SQL и возвращения состояния базы данных. При получении предупреждения от этого монитора необходимо выполнить действия по возврату базы данных в работоспособное состояние.

Причины

Неработоспособное состояние указывает на текущую недоступность базы данных SQL Server. Все состояния, за исключением состояния ONLINE, соответствуют неработоспособному состоянию. Возможные состояния описаны ниже.

Состояние базы данных SQL

Описание

Состояние объекта

В сети

База данных доступна. Первичная файловая группа находится в оперативном режиме, хотя, возможно, не завершена стадия отката восстановления.

Работоспособен

НЕ В СЕТИ

База данных недоступна. База данных переходит в режим вне сети с помощью явного указания пользователя и остается в режиме вне сети до тех пор, пока пользователем не будет предпринято дополнительное действие. Например, база данных может быть переведена в режим вне сети, чтобы переместить файл на другой диск. После завершения перемещения файла база данных снова переводится в режим в сети.

Критические

Ожидание восстановления

Во время восстановления SQL Server обнаружена ошибка, связанная с ресурсами. База данных не повреждена, но, возможно, отсутствуют файлы или ограничения, связанные с системными ресурсами, препятствуют началу процесса восстановления. База данных недоступна. Со стороны пользователя требуются дополнительные действия, чтобы устранить ошибку и обеспечить завершение восстановления.

Критические

Подозрительно

По меньшей мере первичная файловая группа помечена как подозрительная и, возможно, повреждена. Не удается восстановить базу данных во время запуска SQL Server™. База данных недоступна. Со стороны пользователя требуется дополнительное действие, чтобы устранить проблему.

Критические

Аварийный режим

Пользователь изменил базу данных и задал состояние базы данных EMERGENCY. База данных находится в однопользовательском режиме и может быть исправлена или восстановлена. База данных помечена как READ_ONLY, ведение журнала отключено, и доступ возможен только для членов предопределенной роли сервера sysadmin. Состояние EMERGENCY используется в основном для диагностики. Например, база данных, помеченная как подозрительная, может быть переведена в состояние EMERGENCY. Это предоставляет системному администратору доступ к базе данных только для чтения. Только участники предопределенной роли сервера sysadmin могут перевести базу данных в состояние EMERGENCY.

Критический

Восстановление

Восстанавливаются один файл (или несколько), принадлежащий к первичной файловой группе, или один файл (или более), принадлежащий ко вторичным группам, причем база данных остается в автономном режиме. База данных недоступна.

Критические

Восстановление

База данных в процессе восстановления. Процесс восстановления является переходным состоянием; после успешного завершения восстановления база данных автоматически переходит в режим вне сети. При неудачном завершении восстановления база данных будет помечена как подозрительная. База данных недоступна.

Предупреждение

Чтобы узнать точное состояние базы данных, проверьте контекст изменения или предупреждения состояния.

Разрешения

Можно попытаться снова перевести базу данных в режим "в сети", чтобы устранить проблему.

Внешний

Подробные сведения об SQL Server:

https://msdn.microsoft.com/ru-ru/library/microsoft.sqlserver.management.smo.database.status.aspx

Переопределяемые параметры

Имя

Описание

Значение по умолчанию

Приоритет предупреждения

Определение приоритета оповещений.

Обычный

Серьезность предупреждения

Определяет серьезность предупреждения.

Ошибка

Включено

Включает или отключает рабочий процесс.

Да

Создает предупреждения

Определяет, создается ли предупреждение рабочим процессом.

Да

Интервал (в секундах)

Повторяющийся интервал времени в секундах, в который следует запустить рабочий процесс.

300

Время синхронизации

Время синхронизации указывается в 24-часовом формате и может быть опущено.

 

Время ожидания (в секундах)

Указывает время, в течение которого может выполняться рабочий процесс, прежде чем он будет закрыт или завершится сбоем.

200

Время ожидания для подключения к базе данных (секунды)

Рабочий процесс завершится ошибкой и зарегистрирует событие, если он не сможет получить доступ к базе данных за указанный промежуток времени.

15

Element properties:

TargetMicrosoft.SQLServer.Windows.Database
Parent MonitorSystem.Health.AvailabilityState
CategoryAvailabilityHealth
EnabledTrue
Alert GenerateTrue
Alert SeverityMatchMonitorHealth
Alert PriorityNormal
Alert Auto ResolveTrue
Monitor TypeMicrosoft.SQLServer.Windows.MonitorType.Database.DBStatus
RemotableTrue
AccessibilityPublic
Alert Message
MSSQL в Windows: база данных находится в автономном режиме, в режиме ожидания восстановления, в подозрительном или аварийном состоянии
База данных {2} в экземпляре SQL Server {1} на компьютере {0} не в сети, ожидает восстановления, приостановлена или находится в аварийном состоянии.
RunAsDefault

Source Code:

<UnitMonitor ID="Microsoft.SQLServer.Windows.Monitor.Database.DBStatus" Accessibility="Public" Enabled="true" Target="SqlDiscW!Microsoft.SQLServer.Windows.Database" ParentMonitorID="Health!System.Health.AvailabilityState" Remotable="true" Priority="Normal" TypeID="Microsoft.SQLServer.Windows.MonitorType.Database.DBStatus" ConfirmDelivery="false">
<Category>AvailabilityHealth</Category>
<AlertSettings AlertMessage="Microsoft.SQLServer.Windows.Monitor.Database.DBStatus.AlertMessage">
<AlertOnState>Error</AlertOnState>
<AutoResolve>true</AutoResolve>
<AlertPriority>Normal</AlertPriority>
<AlertSeverity>MatchMonitorHealth</AlertSeverity>
<AlertParameters>
<AlertParameter1>$Target/Host/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.DBEngine"]/MachineName$</AlertParameter1>
<AlertParameter2>$Target/Host/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.DBEngine"]/InstanceName$</AlertParameter2>
<AlertParameter3>$Target/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.Database"]/DatabaseName$</AlertParameter3>
</AlertParameters>
</AlertSettings>
<OperationalStates>
<OperationalState ID="Good" MonitorTypeStateID="Good" HealthState="Success"/>
<OperationalState ID="Bad" MonitorTypeStateID="Bad" HealthState="Error"/>
<OperationalState ID="NeitherGoodNorBad" MonitorTypeStateID="NeitherGoodNorBad" HealthState="Warning"/>
</OperationalStates>
<Configuration>
<MachineName>$Target/Host/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.DBEngine"]/MachineName$</MachineName>
<NetbiosComputerName>$Target/Host/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.DBEngine"]/NetbiosComputerName$</NetbiosComputerName>
<InstanceName>$Target/Host/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.DBEngine"]/InstanceName$</InstanceName>
<DatabaseName>$Target/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.Database"]/DatabaseName$</DatabaseName>
<ConnectionString>$Target/Host/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.DBEngine"]/ConnectionString$</ConnectionString>
<InstanceVersion>$Target/Host/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.DBEngine"]/Version$</InstanceVersion>
<InstanceEdition>$Target/Host/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.DBEngine"]/Edition$</InstanceEdition>
<MonitoringType>$Target/Host/Property[Type="SqlDiscW!Microsoft.SQLServer.Windows.DBEngine"]/MonitoringType$</MonitoringType>
<SqlTimeoutSeconds>15</SqlTimeoutSeconds>
<TimeoutSeconds>200</TimeoutSeconds>
<IntervalSeconds>300</IntervalSeconds>
<SyncTime/>
</Configuration>
</UnitMonitor>