データベース バックアップ状態

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

このモニターは、Microsoft SQL Server から報告されたデータベース バックアップの状態を確認します。注: このモニターは既定では無効になっています。必要に応じて上書きを使用し、モニターを有効にしてください。

Knowledge Base article:

概要

このモニターは、Microsoft SQL Server により報告された、データベース バックアップの存在と古さを確認します。確認は、SQL インスタンスの master データベースに対してクエリを実行し、データベース バックアップの古さを返すことで行われます。

原因

データベースが長期間バックアップされていません。

解決方法

問題を解決するには、データベースのバックアップを実行する必要があります。

今後同じ問題が発生しないように、アプリケーションやビジネス要件のニーズに合わせて自動バックアップをスケジュールすることをお勧めします。

外部資料

データベース バックアップ状態モニターには、データベースがセカンダリ レプリカであるかどうかを追跡するロジックがありません。

含まれているデータベースのうち、少なくとも 1 つのデータベースでのバックアップを必要とする拡張バックアップ ロジックが AOG にあるため、モニターは偽陽性のアラートを生成する可能性があります。

既定では、モニターは無効になっており、ご使用の環境でモニター シナリオを有効にする場合、データベース バックアップの保存に使用しないすべてのサーバーのモニターを無効のままにしておくことをお勧めします。

外部資料

SQL Server データベースのバックアップの推奨事項

上書き可能なパラメーター

名前

説明

既定値

有効

 

いいえ

アラートを生成する

 

はい

間隔 (秒)

ワークフローを実行する定期的な実行間隔 (秒)。

86400

同期時刻

24 時間形式で指定した同期時刻。省略可能です。

 

バックアップ期間 (日)

ターゲット バックアップ頻度 (日単位)。回復ポイントの目標 (RPO) に従って設定する必要があります。

7

タイムアウト (秒)

ワークフローが終了して失敗とマークされるまでの、ワークフローの許容実行時間を指定します。

300

Element properties:

TargetMicrosoft.SQLServer.2014.Database
Parent MonitorSystem.Health.AvailabilityState
CategoryAvailabilityHealth
EnabledFalse
Alert GenerateTrue
Alert SeverityError
Alert PriorityNormal
Alert Auto ResolveTrue
Monitor TypeMicrosoft.SQLServer.2014.DBBackupStatus
RemotableTrue
AccessibilityPublic
Alert Message
MSSQL 2014: データベースのバックアップを実行する必要があります
コンピューター '{0}' 上の SQL Server インスタンス '{1}' のデータベース '{2}' は、{3} 日間バックアップされていません。
RunAsDefault

Source Code:

<UnitMonitor ID="Microsoft.SQLServer.2014.Database.DBBackupStatusMonitor" Accessibility="Public" Enabled="false" Target="SQL2014Core!Microsoft.SQLServer.2014.Database" ParentMonitorID="SystemHealth!System.Health.AvailabilityState" Remotable="true" Priority="Normal" TypeID="Microsoft.SQLServer.2014.DBBackupStatus" ConfirmDelivery="false">
<Category>AvailabilityHealth</Category>
<AlertSettings AlertMessage="Microsoft.SQLServer.2014.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="SQL2014Core!Microsoft.SQLServer.2014.ServerRole"]/InstanceName$</AlertParameter2>
<AlertParameter3>$Target/Property[Type="SQL2014Core!Microsoft.SQLServer.2014.Database"]/DatabaseName$</AlertParameter3>
<AlertParameter4>$Data/Context/Property[@Name='$Target/Property[Type="SQL2014Core!Microsoft.SQLServer.2014.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="SQL2014Core!Microsoft.SQLServer.2014.DBEngine"]/ConnectionString$</ConnectionString>
<DatabaseName>$Target/Property[Type="SQL2014Core!Microsoft.SQLServer.2014.Database"]/DatabaseName$</DatabaseName>
<Threshold>7</Threshold>
<IntervalSeconds>86400</IntervalSeconds>
<SyncTime/>
<TimeoutSeconds>300</TimeoutSeconds>
</Configuration>
</UnitMonitor>