데이터베이스 백업 상태

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

이 모니터는 Microsoft® SQL Server™가 보고한 데이터베이스 백업의 상태를 확인합니다.

Knowledge Base article:

요약

이 모니터는 Microsoft® SQL Server™가 보고한 데이터베이스 백업의 존재 여부 및 기간을 확인합니다. 이 작업은 SQL 인스턴스의 master 데이터베이스에 대해 쿼리를 실행하고 데이터베이스 백업의 기간을 반환하여 수행됩니다.

원인

데이터베이스가 너무 오래 동안 백업되지 않았습니다.

해결 방법

문제를 해결하려면 데이터베이스 백업을 수행해야 합니다.

이후에 이 문제가 발생하지 않도록 하려면 응용 프로그램 및 비즈니스 요구 사항에 따라 자동화된 백업을 예약하는 것이 좋습니다.

외부

데이터베이스 백업 상태 모니터에 데이터베이스가 보조 복제본인지 아닌지를 추적할 논리가 없습니다.

관련된 데이터베이스 중 하나 이상의 백업이 필요한 고급 백업 논리가 AOG에 있으므로 모니터가 가양성 알림을 생성할 수 있습니다.

모니터는 기본적으로 사용하지 않도록 설정되어 있으며 사용자 환경의 모니터링 시나리오를 사용하도록 설정하려는 경우 데이터베이스 백업을 저장하는 데 사용되지 않는 모든 서버에 대해 모니터를 사용하지 않는 상태로 유지하는 것이 좋습니다.

외부 리소스

SQL Server 데이터베이스 백업을 위한 최선의 방법 권장 사항

Element properties:

TargetMicrosoft.SQLServer.2012.Database
Parent MonitorSystem.Health.AvailabilityState
CategoryAvailabilityHealth
EnabledFalse
Alert GenerateTrue
Alert SeverityError
Alert PriorityNormal
Alert Auto ResolveTrue
Monitor TypeMicrosoft.SQLServer.2012.DBBackupStatus
RemotableTrue
AccessibilityPublic
Alert Message
데이터베이스 백업을 수행해야 합니다.
'{0}' 컴퓨터에서 SQL Server 인스턴스 '{1}'의 '{2}' 데이터베이스가 {3}일간 백업되지 않았습니다.
RunAsDefault

Source Code:

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