이 모니터는 로그 전달 대상의 로그가 로그 전달 구성의 일부분으로 정의된 임계값 내에서 해당 대상으로 복원되지 않은 경우를 검색합니다.
모든 로그 전달은 모든 버전의 SQL Server Express에서 지원되지 않습니다.
이 모니터는 로그 전달 대상의 로그가 로그 전달 구성의 일부분으로 정의된 임계값 내에서 해당 대상으로 복원되지 않은 경우를 검색합니다. 이 조건이 발생하면 모니터가 위험 상태로 변경됩니다. 로그 복원이 재개되고 정의된 임계값 내에 있으면 모니터가 정상 상태로 돌아옵니다. 기본적으로 이 모니터는 오류 상태에 있을 때 경고를 생성합니다.
로그 전달이 복원 임계값을 초과하여 동기화되지 않았습니다. 복원 임계값은 메시지가 생성되기 전에 복원 작업 간에 경과된 시간(분)입니다.
이 문제를 해결하려면:
SQL Server 에이전트 서비스가 보조 서버 인스턴스에 대해 실행되고 있는지 그리고 이 보조 데이터베이스에 대한 복원 작업이 설정되어 적절한 빈도로 실행되도록 예약되어 있는지 확인합니다.
보조 서버의 복원 작업이 실패할 수 있습니다. 이 경우 원인을 찾을 수 있도록 복원 작업에 대한 작업 기록을 확인합니다.
보조 서버 인스턴스에서 실행되는 로그 전달 복원 작업의 경우 log_shipping_monitor_secondary 테이블을 업데이트하기 위한 모니터 서버 인스턴스로의 연결이 불가능할 수 있습니다. 이는 모니터 서버 인스턴스와 보조 서버 인스턴스 간의 인증 문제로 인해 발생할 수 있습니다.
백업 경고 임계값에 잘못된 값이 있을 수 있습니다. 이 값은 복원 작업 빈도의 세 배 이상으로 설정되는 것이 좋습니다. 로그 전달을 구성하여 작동한 후에 복원 작업의 빈도를 변경하는 경우 백업 경고 임계값을 이에 맞게 업데이트해야 합니다.
모니터 서버 인스턴스가 오프라인 상태가 된 후 다시 온라인 상태로 돌아오는 경우 경고 메시지 작업이 실행되기 전에는 log_shipping_monitor_secondary 테이블이 현재 값으로 업데이트되지 않습니다. "보조 데이터베이스에 적용할 수 있는 로그 백업 파일을 찾을 수 없습니다"라는 메시지와 함께 복원 작업이 실행되는 경우 오류 14421이 발생할 수 있습니다. 이러한 오류가 발생하면 복원 시간은 업데이트되지 않습니다. 이 경우 오류는 복사 작업 문제로 인한 것일 수 있습니다.
보조 데이터베이스에 대한 최신 데이터를 사용하여 모니터 테이블을 업데이트하려면 보조 서버 인스턴스에서 sp_refresh_log_shipping_monitor를 실행합니다.
보조 인스턴스나 모니터 서버 인스턴스의 날짜 또는 시간이 올바르지 않습니다. 이로 인해 경고 메시지가 생성될 수 있습니다. 두 서버 인스턴스 중 하나에서 시스템 날짜나 시간이 수정되었을 수 있습니다.
참고: 두 서버 인스턴스의 서로 다른 표준 시간대로 인해 문제가 발생하지 않아야 합니다.
SQL Server 온라인 설명서의 로그 전달 항목:
http://go.microsoft.com/fwlink/?LinkId=799310
이름 | 설명 | 기본값 |
경고 우선 순위 | 알림 우선 순위를 정의합니다. | 보통 |
경고 심각도 | 알림 심각도를 정의합니다. | 오류 |
사용 | 워크플로 사용하거나 사용하지 않도록 설정합니다. | 예 |
알림 생성 | 워크플로에서 알림을 생성하는지 여부를 정의합니다. | 예 |
간격(초) | 워크플로를 실행하는 반복 시간 간격(초)입니다. | 300 |
동기화 시간 | 24시간 형식으로 지정된 동기화 시간입니다. 생략될 수 있습니다. |
|
시간 제한(초) | 여기서 지정한 시간 동안 워크플로가 실행된 후 워크플로가 닫히고 실패로 표시됩니다. | 200 |
데이터베이스 연결 시간 제한(초) | 워크플로는 지정된 기간 동안 데이터베이스에 액세스할 수 없으면 실패하며 이벤트를 등록합니다. | 15 |
Target | Microsoft.SQLServer.Linux.Database | ||
Parent Monitor | System.Health.PerformanceState | ||
Category | PerformanceHealth | ||
Enabled | True | ||
Alert Generate | True | ||
Alert Severity | Error | ||
Alert Priority | Normal | ||
Alert Auto Resolve | True | ||
Monitor Type | Microsoft.SQLServer.Linux.MonitorType.Database.LogShipping | ||
Remotable | True | ||
Accessibility | Public | ||
Alert Message |
| ||
RunAs | Default |
<UnitMonitor ID="Microsoft.SQLServer.Linux.LogShippingDestinationMonitor" Accessibility="Public" Enabled="true" Target="SqlDiscL!Microsoft.SQLServer.Linux.Database" ParentMonitorID="Health!System.Health.PerformanceState" Remotable="true" Priority="Normal" TypeID="Microsoft.SQLServer.Linux.MonitorType.Database.LogShipping" ConfirmDelivery="true">
<Category>PerformanceHealth</Category>
<AlertSettings AlertMessage="Microsoft.SQLServer.Linux.LogShippingDestinationMonitor.AlertMessage">
<AlertOnState>Error</AlertOnState>
<AutoResolve>true</AutoResolve>
<AlertPriority>Normal</AlertPriority>
<AlertSeverity>Error</AlertSeverity>
<AlertParameters>
<AlertParameter1>$Data/Context/Property[@Name='Message']$</AlertParameter1>
</AlertParameters>
</AlertSettings>
<OperationalStates>
<OperationalState ID="DestOutOfSync" MonitorTypeStateID="Bad" HealthState="Error"/>
<OperationalState ID="DestInSync" MonitorTypeStateID="Good" HealthState="Success"/>
</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>
<DatabaseName>$Target/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.Database"]/DatabaseName$</DatabaseName>
<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>
<SqlTimeoutSeconds>15</SqlTimeoutSeconds>
<TimeoutSeconds>200</TimeoutSeconds>
<IntervalSeconds>300</IntervalSeconds>
<SyncTime/>
<LogShippingType>1</LogShippingType>
</Configuration>
</UnitMonitor>