Неверный начальный номер LSN транзакции в журнале, указанный для просмотра журнала репликации

Microsoft.SQLServer.2008.BeginLSNSpecifiedForReplicationLogscanInvalidRule (Rule)

Knowledge Base article:

Сводка

Указан неверный начальный регистрационный номер транзакции в журнале для просмотра журнала репликации.

Причины

Регистрационный номер транзакции в журнале, хранимый в таблицах репликации баз данных распространителя, больше номера, указанного в журнале транзакций в качестве следующего для считывания агентом чтения журнала. Это указывает на несогласованность данных издателя и распространителя. Процессу агента чтения журнала неизвестно, какая запись должна быть считана следующей. Такая ситуациям могла возникнуть, если из таблицы репликации MSrepl_transactions вручную удалены строки или если для базы данных распространителя установлен флажок sync with backup, но база данных публикации восстановлена без согласования баз данных.

Ниже рассмотрены некоторые сценарии возникновения такой ситуации.

Решения

Повторно инициализируйте все подписки для пострадавшей транзакционной публикации, чтобы обеспечить синхронизацию данных.

Внешнее

Стратегии резервного копирования и восстановления из копии репликации моментальных снимков и репликации транзакций

Element properties:

TargetMicrosoft.SQLServer.2008.DBEngine
CategoryEventCollection
EnabledFalse
Alert GenerateTrue
Alert SeverityError
Alert PriorityHigh
RemotableTrue
Alert Message
Неверный начальный номер LSN транзакции в журнале, указанный для просмотра журнала репликации
{0}

Member Modules:

ID Module Type TypeId RunAs 
DS DataSource Microsoft.SQLServer.2008.EventProvider Default
GenerateAlert WriteAction System.Health.GenerateAlert Default

Source Code:

<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>$Data/EventDescription$</AlertParameter1>
</AlertParameters>
<Suppression>
<SuppressionValue>$Data/LoggingComputer$</SuppressionValue>
<SuppressionValue>$Data/PublisherName$</SuppressionValue>
<SuppressionValue>$Data/EventDisplayNumber$</SuppressionValue>
</Suppression>
</WriteAction>
</WriteActions>
</Rule>