Состояние резервного копирования базы данных

Microsoft.SQLServer.2016.Database.DBBackupStatusMonitor (UnitMonitor)

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

Knowledge Base article:

Сводка

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

Причины

Для базы данных слишком давно не создавалась резервная копия.

Решения

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

Для устранения этой проблемы в будущем рекомендуется запланировать автоматическое резервное копирование в соответствии с потребностями приложения и бизнес-требованиями.

Внешнее

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

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

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

Внешнее

Рекомендации по резервному копированию базы данных SQL Server

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

Название

Описание

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

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

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

Обычные

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

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

Ошибка

Период резервного копирования (дни)

Целевая частота резервного копирования в днях. Следует устанавливать в соответствии с целевой точкой восстановления (RPO).

7

Включено

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

Нет

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

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

Да

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

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

86400

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

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

 

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

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

300

Element properties:

TargetMicrosoft.SQLServer.2016.Database
Parent MonitorSystem.Health.AvailabilityState
CategoryAvailabilityHealth
EnabledFalse
Alert GenerateTrue
Alert SeverityError
Alert PriorityNormal
Alert Auto ResolveTrue
Monitor TypeMicrosoft.SQLServer.2016.DBBackupStatus
RemotableTrue
AccessibilityPublic
Alert Message
MSSQL 2016: необходимо произвести резервное копирование базы данных
Для базы данных "{2}" в экземпляре SQL Server "{1}" на компьютере "{0}" резервная копия не создавалась {3} суток.
RunAsDefault

Source Code:

<UnitMonitor ID="Microsoft.SQLServer.2016.Database.DBBackupStatusMonitor" Accessibility="Public" Enabled="false" Target="SQL2016Core!Microsoft.SQLServer.2016.Database" ParentMonitorID="SystemHealth!System.Health.AvailabilityState" Remotable="true" Priority="Normal" TypeID="Microsoft.SQLServer.2016.DBBackupStatus" ConfirmDelivery="false">
<Category>AvailabilityHealth</Category>
<AlertSettings AlertMessage="Microsoft.SQLServer.2016.Database.DBBackupStatusMonitor.AlertMessage">
<AlertOnState>Error</AlertOnState>
<AutoResolve>true</AutoResolve>
<AlertPriority>Normal</AlertPriority>
<AlertSeverity>Error</AlertSeverity>
<AlertParameters>
<AlertParameter1>$Target/Host/Host/Property[Type="Windows!Microsoft.Windows.Computer"]/NetworkName$</AlertParameter1>
<AlertParameter2>$Target/Host/Property[Type="SQL2016Core!Microsoft.SQLServer.2016.ServerRole"]/InstanceName$</AlertParameter2>
<AlertParameter3>$Target/Property[Type="SQL2016Core!Microsoft.SQLServer.2016.Database"]/DatabaseName$</AlertParameter3>
<AlertParameter4>$Data/Context/Property[@Name='$Target/Property[Type="SQL2016Core!Microsoft.SQLServer.2016.Database"]/DatabaseName$']$</AlertParameter4>
</AlertParameters>
</AlertSettings>
<OperationalStates>
<OperationalState ID="Good" MonitorTypeStateID="Good" HealthState="Success"/>
<OperationalState ID="Bad" MonitorTypeStateID="Bad" HealthState="Error"/>
</OperationalStates>
<Configuration>
<ConnectionString>$Target/Host/Property[Type="SQL2016Core!Microsoft.SQLServer.2016.DBEngine"]/ConnectionString$</ConnectionString>
<DatabaseName>$Target/Property[Type="SQL2016Core!Microsoft.SQLServer.2016.Database"]/DatabaseName$</DatabaseName>
<Threshold>7</Threshold>
<IntervalSeconds>86400</IntervalSeconds>
<SyncTime/>
<TimeoutSeconds>300</TimeoutSeconds>
</Configuration>
</UnitMonitor>