Availability Database Log Backup Status (rollup)

Microsoft.SQLServer.Core.Rollup.AvailabilityDatabase.DBLogBackupStatusAggregate (AggregateMonitor)

The monitor checks availability of a database log backup and its age as reported by Microsoft SQL Server. This monitor is a dependency (rollup) monitor.

Knowledge Base article:

Summary

This monitor checks the existence and age of a database log backup as reported by Microsoft SQL Server. This is done by running a query against the master database of the SQL instance and returning the age of the database log backup.

Note that this monitor uses the 'Best state of any member' health rollup policy option, which means that the parent monitor will only be in the Unhealthy state if all of its child monitors are unhealthy.

See the Availability Database rollup monitors alerts article for more details.

Causes

Availability Database log has not been backed up for too long.

Resolutions

You should perform a backup of one of the availability database replicas to resolve the issue.

To eliminate this issue in future it is recommended to schedule an automated backup according to the needs of the application and business requirements.

Overridable Parameters

Name

Description

Default Value

Alert Priority

Defines Alert Priority.

Normal

Alert Severity

Defines Alert Severity.

Error

Enabled

Enables or disables the workflow.

Yes

Generates Alerts

Defines whether the workflow generates an Alert.

Yes

Rollup Algorithm

Defines the health state of the dependency rollup monitor to reflect either the least healthy state or the most healthy state of any member.

Best state of any member

Element properties:

TargetMicrosoft.SQLServer.Core.AvailabilityDatabase
Parent MonitorSystem.Health.AvailabilityState
AlgorithmBestOf
CategoryAvailabilityHealth
EnabledTrue
Alert GenerateTrue
Alert SeverityError
Alert PriorityNormal
Alert Auto ResolveTrue
RemotableTrue
AccessibilityPublic
Alert Message
MSSQL: Availability Database Log backup should be performed

The time that has elapsed from the date of the last backup across all of the availability database replicas exceeded the specified interval.
Database name: {0}
Availability Group name: {1}
Availability Group ID: {2}

Source Code:

<AggregateMonitor ID="Microsoft.SQLServer.Core.Rollup.AvailabilityDatabase.DBLogBackupStatusAggregate" Accessibility="Public" Enabled="true" Target="Microsoft.SQLServer.Core.AvailabilityDatabase" ParentMonitorID="Health!System.Health.AvailabilityState" Remotable="true" Priority="Normal">
<Category>AvailabilityHealth</Category>
<AlertSettings AlertMessage="Microsoft.SQLServer.Core.Rollup.AvailabilityDatabase.DBLogBackupStatusAggregate.AlertMessage">
<AlertOnState>Error</AlertOnState>
<AutoResolve>true</AutoResolve>
<AlertPriority>Normal</AlertPriority>
<AlertSeverity>Error</AlertSeverity>
<AlertParameters>
<AlertParameter1>$Target/Property[Type="Microsoft.SQLServer.Core.AvailabilityDatabase"]/DatabaseName$</AlertParameter1>
<AlertParameter2>$Target/Host/Property[Type="System!System.Entity"]/DisplayName$</AlertParameter2>
<AlertParameter3>$Target/Host/Property[Type="Microsoft.SQLServer.Core.AvailabilityGroup"]/UniqueId$</AlertParameter3>
</AlertParameters>
</AlertSettings>
<Algorithm>BestOf</Algorithm>
</AggregateMonitor>