Указан неверный начальный регистрационный номер транзакции в журнале для просмотра журнала репликации.
Регистрационный номер транзакции в журнале, хранимый в таблицах репликации баз данных распространителя, больше номера, указанного в журнале транзакций в качестве следующего для считывания агентом чтения журнала. Это указывает на несогласованность данных издателя и распространителя. Процессу агента чтения журнала неизвестно, какая запись должна быть считана следующей. Такая ситуациям могла возникнуть, если из таблицы репликации MSrepl_transactions вручную удалены строки или если для базы данных распространителя установлен флажок sync with backup, но база данных публикации восстановлена без согласования баз данных.
Ниже рассмотрены некоторые сценарии возникновения такой ситуации.
Флажок Sync with backup установлен для базы данных издателя. Резервные копии базы данных издателя создаются при выполнении некоторых операций и запущенном агенте чтения журнала. База данных издателя восстанавливается из более ранней версии резервной копии.
Флажок Sync with backup не установлен для базы данных издателя. Резервные копии базы данных издателя создаются при выполнении некоторых операций и запущенном агенте чтения журнала. Выполняется восстановление базы данных издателя.
Повторно инициализируйте все подписки для пострадавшей транзакционной публикации, чтобы обеспечить синхронизацию данных.
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>$Data/EventDescription$</AlertParameter1>
</AlertParameters>
<Suppression>
<SuppressionValue>$Data/LoggingComputer$</SuppressionValue>
<SuppressionValue>$Data/PublisherName$</SuppressionValue>
<SuppressionValue>$Data/EventDisplayNumber$</SuppressionValue>
</Suppression>
</WriteAction>
</WriteActions>
</Rule>