非アクティブ化されたサブスクリプションの割合

Microsoft.SQLServer.2012.Replication.Monitor.PercentOfDeactivatedSubscriptions (UnitMonitor)

非アクティブ化されたサブスクリプション モニターの割合

Knowledge Base article:

概要

有効期限が切れたサブスクリプションのパーセンテージを測定します。警告および重大のしきい値は次のようになります: (既定値: 警告は 0% を超える、エラー は 10% を超える)

モニターがマージ レプリケーションをサポートしていません。

原因

トランザクション レプリケーション サブスクリプションが、最大ディストリビューション保有期間 (既定値は 72 時間) 内に同期されておらず、ディストリビューション データベース内に、サブスクライバーに配信されていない変更がある場合、ディストリビューターで実行するディストリビューション クリーンアップ ジョブによって、サブスクリプションが非アクティブ化とマークされます。

解決策

サブスクリプションを再初期化する必要があります。

サブスクライバーの同期の間隔の増加を考慮するように、保持期間を調整する必要がある可能性があります。この値を増やすことによって、保持されるレプリケーション データ量が増加し、レプリケーション パフォーマンスに影響する可能性があることに注意してください。

外部

サブスクリプションの非アクティブ化管理の詳細については、次の場所を参照してください:

サブスクリプションの期限切れと非アクティブ化

http://technet.microsoft.com/library/ms151188.aspx

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

名前

説明

既定値

アラートの優先度

アラートの優先順位を定義します。

アラートの重要度

アラートの重大度を定義します。

エラー

有効化

ワークフローを有効または無効にします。

はい

エラーのしきい値

エラーのしきい値

10

警告を生成する

ワークフローがアラートを生成するかどうかを定義します。

はい

間隔 (秒)

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

300

同期時間

同期時間

 

タイムアウト (秒)

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

300

データベース接続のタイムアウト (秒)

指定された期間中にデータベースにアクセスできない場合、ワークフローは失敗し、イベントが登録されます。

15

警告のしきい値

警告のしきい値

0

Element properties:

TargetMicrosoft.SQLServer.2012.Replication.Distributor
Parent MonitorSystem.Health.ConfigurationState
CategoryPerformanceHealth
EnabledTrue
Alert GenerateTrue
Alert SeverityError
Alert PriorityNormal
Alert Auto ResolveTrue
Monitor TypeMicrosoft.SQLServer.2012.Replication.MonitorType.DistributorPercentOfDeactivatedSubscriptions
RemotableTrue
AccessibilityPublic
Alert Message
MSSQL2012 レプリケーション:ディストリビューターで、非アクティブ化されたサブスクリプションが高い割合で検出されました。
ディストリビューター (名前:'{0}'、サーバー: '{1}') は非アクティブ化されたサブスクリプションの割合が高いことを検出しました。
非アクティブ化されたサブスクリプションの割合:{2}\%
サブスクリプション:
{3}
RunAsMicrosoft.SQLServer.Replication.Monitoring.RunAs.Monitor

Source Code:

<UnitMonitor ID="Microsoft.SQLServer.2012.Replication.Monitor.PercentOfDeactivatedSubscriptions" 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.DistributorPercentOfDeactivatedSubscriptions.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>15</SqlTimeout>
<ConnectionString>$Target/Property[Type='MSRL!Microsoft.SQLServer.Replication.Library.GenericDistributor']/ConnectionString$</ConnectionString>
<MeasuredStateId>1</MeasuredStateId>
<WarningThreshold>0</WarningThreshold>
<ErrorThreshold>10</ErrorThreshold>
<IntervalSeconds>300</IntervalSeconds>
<SyncTime/>
<TimeoutSeconds>300</TimeoutSeconds>
</Configuration>
</UnitMonitor>