レプリケーション ログ スキャンに指定された開始ログ シーケンス番号が無効です。
ディストリビューション データベース レプリケーション テーブルに格納されているログ シーケンス番号 (LSN) は、トランザクション ログでログ リーダー エージェントが次に読み取るように指定されている LSN よりも後のものです。これは、データがパブリッシャーとディストリビューターの間で矛盾しているため、ログ リーダー エージェント プロセスが次にどのレコードを正しく読み取るのか認識できないことを示しています。この状況は、MSrepl_transactions レプリケーション テーブルから行が手動で削除された場合、またはディストリビューション データベースが sync with backup を有効にしていたものの、パブリケーション データベースがデータベース間の一貫性を確認せずに復元された場合に発生します。
この状況が発生する可能性のあるシナリオを次に示します。
パブリッシング データベースに対して Sync with backup が有効になっています。アクティビティが発生していて、ログ リーダー エージェントが実行中であるときに、パブリッシング データベースのバックアップを作成します。パブリッシャー データベースをバックアップの以前のコピーに復元します。
パブリッシング データベースに対して Sync with backup が有効になっていません。アクティビティの実行中、およびログ リーダー エージェントの実行中に、パブリッシング データベースをバックアップします。パブリッシャー データベースを復元します。
影響を受けるトランザクション パブリケーションのすべてのサブスクリプションを再初期化して、データの同期をとるようにします。
スナップショット レプリケーションおよびトランザクション レプリケーションのバックアップと復元の方式
名前 | 説明 | 既定値 |
有効 | ワークフローを有効または無効にします。 | いいえ |
優先順位 | アラートの優先順位を定義します。 | 2 |
重大度 | アラートの重大度を定義します。 | 2 |
Target | Microsoft.SQLServer.2008.DBEngine | ||
Category | EventCollection | ||
Enabled | False | ||
Alert Generate | True | ||
Alert Severity | Error | ||
Alert Priority | High | ||
Remotable | True | ||
Alert Message |
|
ID | Module Type | TypeId | RunAs |
---|---|---|---|
DS | DataSource | Microsoft.SQLServer.2008.EventProvider | Default |
GenerateAlert | WriteAction | System.Health.GenerateAlert | Default |
<Rule ID="Microsoft.SQLServer.2008.BeginLSNSpecifiedForReplicationLogscanInvalidRule" Target="SQL2008Core!Microsoft.SQLServer.2008.DBEngine" Enabled="false" ConfirmDelivery="true">
<Category>EventCollection</Category>
<DataSources>
<DataSource ID="DS" TypeID="Microsoft.SQLServer.2008.EventProvider">
<ComputerName>$Target/Host/Property[Type="Windows!Microsoft.Windows.Computer"]/NetworkName$</ComputerName>
<PublisherName>$Target/Property[Type="SQL!Microsoft.SQLServer.DBEngine"]/ServiceName$</PublisherName>
<EventNumber>18765</EventNumber>
</DataSource>
</DataSources>
<WriteActions>
<WriteAction ID="GenerateAlert" TypeID="SystemHealth!System.Health.GenerateAlert">
<Priority>2</Priority>
<Severity>2</Severity>
<AlertMessageId>$MPElement[Name="Microsoft.SQLServer.2008.BeginLSNSpecifiedForReplicationLogscanInvalidRule.AlertMessage"]$</AlertMessageId>
<AlertParameters>
<AlertParameter1>Event ID: $Data/EventDisplayNumber$. $Data/EventDescription$</AlertParameter1>
</AlertParameters>
<Suppression>
<SuppressionValue>$Data/LoggingComputer$</SuppressionValue>
<SuppressionValue>$Data/PublisherName$</SuppressionValue>
<SuppressionValue>$Data/EventDisplayNumber$</SuppressionValue>
</Suppression>
</WriteAction>
</WriteActions>
</Rule>