게시의 초기 스냅숏을 사용할 수 없습니다.

Microsoft.SQLServer.2008.InitialSnapshotForPublicationIsNotYetAvailableRule (Rule)

Knowledge Base article:

요약

아티클 캐시 액세스 이벤트를 처리하는 중 SQL Server에 오류가 로깅되었습니다.

원인

다음 상황에서 위의 오류가 나타납니다.

병합 복제의 경우

병합 구독을 만들거나 다시 초기화한 다음 스냅숏 에이전트가 시작되기 전에 또는 스냅숏 에이전트가 완료되기 전에 병합 에이전트를 시작하면 이 오류가 나타납니다.

트랜잭션 복제의 경우

예, 스키마와 데이터를 초기화합니다 옵션을 사용하여 만든 트랜잭션 구독을 만들거나 다시 초기화하였고, 스냅숏 에이전트가 시작되기 전에 또는 스냅숏 에이전트가 완료되기 전에 배포 에이전트를 시작했습니다. 이 구독이 배포 에이전트와 관련된 유일한 구독이거나 배포 에이전트와 관련된 모든 구독이 위의 상태에 있을 경우에만 이 오류가 나타납니다. 배포 에이전트와 관련된 구독 중 사용 가능한 스냅숏이 있는 구독이 생기면, 에이전트 기록 메시지에서 "사용할 수 있는 복제된 트랜잭션이 없습니다"가 기록되거나, 이 에이전트와 관련된 다른 구독에 대해 전달된 트랜잭션 및 명령 수를 보고합니다. 트랜잭션 게시에 아티클이 하나만 있고 그 아티클이 위에서 설명한 조건에 맞는 경우, 오류 21076, "아티클의 초기 스냅숏을 아직 사용할 수 없습니다"라는 메시지가 대신 나타납니다.

해결 방법

구독을 만든 이후 또는 마지막으로 구독을 다시 초기화하도록 선택한 이후 관련 스냅숏 에이전트가 시작되지 않은 경우, 스냅숏 에이전트를 시작하여 병합 에이전트나 배포 에이전트를 시작하기 전에 스냅숏 에이전트가 완료되도록 해야 합니다.

스냅숏 에이전트가 완료되지 않는 경우 스냅숏 에이전트 기록에서 오류를 확인한 후 해결합니다. 필요한 경우 스냅숏 에이전트에 로그를 추가하여 표시되는 오류에 대한 자세한 내용이 반환될 수 있는지 확인할 수 있습니다.

외부

SQL Server의 출력 파일에 로깅하도록 복제 에이전트를 설정하는 방법

Element properties:

TargetMicrosoft.SQLServer.2008.DBEngine
CategoryEventCollection
EnabledTrue
Alert GenerateTrue
Alert SeverityWarning
Alert PriorityNormal
RemotableTrue
Alert Message
게시의 초기 스냅숏을 사용할 수 없습니다.
{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.InitialSnapshotForPublicationIsNotYetAvailableRule" Target="SQL2008Core!Microsoft.SQLServer.2008.DBEngine" Enabled="true" 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>21075</EventNumber>
</DataSource>
</DataSources>
<WriteActions>
<WriteAction ID="GenerateAlert" TypeID="SystemHealth!System.Health.GenerateAlert">
<Priority>1</Priority>
<Severity>1</Severity>
<AlertMessageId>$MPElement[Name="Microsoft.SQLServer.2008.InitialSnapshotForPublicationIsNotYetAvailableRule.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>