만료된 구독 백분율 모니터
만료된 구독의 백분율을 측정합니다.
지정된 보존 기간 내에 동기화되지 않은 경우 구독이 만료됩니다.
트랜잭션 복제의 경우 구독이 게시 보존 기간 내에 동기화되지 않으면 구독이 만료되고 게시자에서 실행되는 만료된 구독 정리 작업에 의해 삭제됩니다.
병합 복제의 경우 보존 기간의 정의하는 데 sp_addmergepublication의 @retention 및 @retention_period_unit 매개 변수가 사용됩니다. 구독이 보존 기간 내에 성공적으로 동기화되지 않은 경우 및 구독자의 파티션 데이터가 변경된 경우에만 구독이 만료됩니다.
트랜잭션 복제의 경우 구독을 다시 만들고 동기화해야 합니다. 밀어넣기 구독은 만료된 경우 완전히 제거되지만 끌어오기 구독은 그렇지 않습니다. 끌어오기 구독은 구독자에서 정리해야 합니다.
병합 구독이 만료되면 구독에 대한 메타데이터가 제거됩니다. 마지막으로 동기화에 성공한 이후 보존 기간의 두 배에 해당하는 기간까지 구독을 다시 초기화할 수 있습니다. 이 기간이 경과하면 구독이 완전히 제거되므로 다시 만들고 동기화해야 합니다. 밀어넣기 구독의 경우 만료된 구독 정리 작업에 의해 구독이 자동으로 제거됩니다. 끌어오기 구독은 정리되지 않으므로 구독자에서 수동으로 정리해야 합니다.
구독자 동기화 간격을 늘릴 수 있도록 보존 기간을 조정해야 할 수 있습니다. 이 값을 늘리면 복제 데이터 양이 증가하여 복제 성능에 부정적인 영향을 줄 수 있으므로 주의해야 합니다.
구독 만료 관리에 대한 자세한 내용은 다음 위치에서 확인할 수 있습니다.
http://technet.microsoft.com/library/ms151188.aspx
이름 | 설명 | 기본값 |
사용 | 워크플로를 사용하거나 사용하지 않도록 설정 | 예 |
오류 임계값 | 오류 임계값 | 10 |
알림 생성 | 워크플로가 알림을 생성하는지 정의 | 예 |
간격(초) | 워크플로를 실행하는 반복 시간 간격(초)입니다. | 300 |
시간 제한(초) | 시간 제한(초) | 300 |
동기화 시간 | 동기화 시간 |
|
경고 임계값 | 경고 임계값 | 0 |
Target | Microsoft.SQLServer.2012.Replication.Distributor | ||
Parent Monitor | System.Health.ConfigurationState | ||
Category | PerformanceHealth | ||
Enabled | True | ||
Alert Generate | True | ||
Alert Severity | Error | ||
Alert Priority | Normal | ||
Alert Auto Resolve | True | ||
Monitor Type | Microsoft.SQLServer.2012.Replication.MonitorType.DistributorPercentOfDeactivatedSubscriptions | ||
Remotable | True | ||
Accessibility | Public | ||
Alert Message |
| ||
RunAs | Microsoft.SQLServer.Replication.Monitoring.RunAs.Monitor |
<UnitMonitor ID="Microsoft.SQLServer.2012.Replication.Monitor.PercentOfExpiredSubscriptions" Accessibility="Public" Enabled="true" Target="MS2RD!Microsoft.SQLServer.2012.Replication.Distributor" ParentMonitorID="Health!System.Health.ConfigurationState" Remotable="true" Priority="Normal" TypeID="Microsoft.SQLServer.2012.Replication.MonitorType.DistributorPercentOfDeactivatedSubscriptions" ConfirmDelivery="false" RunAs="MSRL!Microsoft.SQLServer.Replication.Monitoring.RunAs.Monitor">
<Category>PerformanceHealth</Category>
<AlertSettings AlertMessage="Microsoft.SQLServer.2012.Replication.Monitor.DistributorPercentOfExpiredSubscriptions.AlertMessage">
<AlertOnState>Error</AlertOnState>
<AutoResolve>true</AutoResolve>
<AlertPriority>Normal</AlertPriority>
<AlertSeverity>Error</AlertSeverity>
<AlertParameters>
<AlertParameter1>$Target/Property[Type='MSRL!Microsoft.SQLServer.Replication.Library.GenericDistributor']/InstanceName$</AlertParameter1>
<AlertParameter2>$Target/Property[Type='MSRL!Microsoft.SQLServer.Replication.Library.GenericDistributor']/ConnectionString$</AlertParameter2>
<AlertParameter3>$Data/Context/Property[@Name='DistributorPercentOfDeactivatedSubscriptions']$</AlertParameter3>
<AlertParameter4>$Data/Context/Property[@Name='Message']$</AlertParameter4>
</AlertParameters>
</AlertSettings>
<OperationalStates>
<OperationalState ID="Health" MonitorTypeStateID="Health" HealthState="Success"/>
<OperationalState ID="Error" MonitorTypeStateID="Error" HealthState="Error"/>
<OperationalState ID="Warning" MonitorTypeStateID="Warning" HealthState="Warning"/>
</OperationalStates>
<Configuration>
<SqlTimeout>300</SqlTimeout>
<ConnectionString>$Target/Property[Type='MSRL!Microsoft.SQLServer.Replication.Library.GenericDistributor']/ConnectionString$</ConnectionString>
<MeasuredStateId>0</MeasuredStateId>
<WarningThreshold>0</WarningThreshold>
<ErrorThreshold>10</ErrorThreshold>
<IntervalSeconds>300</IntervalSeconds>
<SyncTime/>
</Configuration>
</UnitMonitor>