복제 로그 검색에 대해 지정된 시작 로그 시퀀스 번호가 잘못되었습니다.
배포 데이터베이스 복제 테이블에 저장된 로그 시퀀스 번호(LSN)가 로그 판독기 에이전트가 다음에 읽으려는 트랜잭션 로그에 지정된 LSN보다 이후 번호입니다. 이는 게시자와 배포자 간 데이터에 일관성이 없고 로그 판독기 에이전트 프로세스가 다음에 읽을 레코드가 무엇인지 정확하게 알지 못함을 나타냅니다. 이 상황은 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>