데이터베이스 백업 상태

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

이 모니터는 Microsoft SQL Server가 보고한 데이터베이스 백업의 상태를 확인합니다. 참고: 이 모니터는 기본적으로 사용하지 않도록 설정되어 있습니다. 필요한 경우 사용하도록 설정하려면 재정의를 사용하세요.

Knowledge Base article:

요약

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

원인

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

해결 방법

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

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

추가

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

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

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

외부

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

재정의 가능한 매개 변수

이름

설명

기본값

경고 우선 순위

알림 우선 순위를 정의합니다.

보통

경고 심각도

알림 심각도를 정의합니다.

오류

백업 기간(일)

대상 백업 빈도(일)는 RPO(복구 지점 목표)에 따라 설정되어야 합니다

7

사용

워크플로 사용하거나 사용하지 않도록 설정합니다.

알림 생성

워크플로에서 알림을 생성하는지 여부를 정의합니다.

간격(초)

워크플로를 실행하는 반복 시간 간격(초)입니다.

86400

동기화 시간

24시간 형식으로 지정된 동기화 시간입니다. 생략될 수 있습니다.

 

시간 제한(초)

여기서 지정한 시간 동안 워크플로가 실행된 후 워크플로가 닫히고 실패로 표시됩니다.

300

데이터베이스 연결 시간 제한(초)

워크플로는 지정된 기간 동안 데이터베이스에 액세스할 수 없으면 실패하며 이벤트를 등록합니다.

15

Element properties:

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

Source Code:

<UnitMonitor ID="Microsoft.SQLServer.Windows.Monitor.Database.DBBackupStatus" Accessibility="Public" Enabled="false" Target="SqlDiscW!Microsoft.SQLServer.Windows.Database" ParentMonitorID="Health!System.Health.AvailabilityState" Remotable="true" Priority="Normal" TypeID="Microsoft.SQLServer.Windows.MonitorType.Database.DBBackupStatus" ConfirmDelivery="false">
<Category>AvailabilityHealth</Category>
<AlertSettings AlertMessage="Microsoft.SQLServer.Windows.Monitor.Database.DBBackupStatus.AlertMessage">
<AlertOnState>Error</AlertOnState>
<AutoResolve>true</AutoResolve>
<AlertPriority>Normal</AlertPriority>
<AlertSeverity>Error</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>
<AlertParameter4>$Data/Context/Property[@Name='DaysSinceBackup']$</AlertParameter4>
</AlertParameters>
</AlertSettings>
<OperationalStates>
<OperationalState ID="Good" MonitorTypeStateID="Good" HealthState="Success"/>
<OperationalState ID="Bad" MonitorTypeStateID="Bad" HealthState="Error"/>
</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>
<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>
<DatabaseName>$Target/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.Database"]/DatabaseName$</DatabaseName>
<Threshold>7</Threshold>
<IntervalSeconds>86400</IntervalSeconds>
<SyncTime/>
<SqlTimeoutSeconds>15</SqlTimeoutSeconds>
<TimeoutSeconds>300</TimeoutSeconds>
</Configuration>
</UnitMonitor>