다음을 통해 공유


sp_setsubscriptionxactseqno(Transact-SQL)

문제 해결 도중 구독자의 배포 에이전트에 의해 적용될 다음 트랜잭션의 LSN(로그 시퀀스 번호)을 지정하는 데 사용되며 에이전트에서 실패한 트랜잭션을 건너뛸 수 있게 해줍니다. 이 저장 프로시저는 구독 데이터베이스의 구독자에서 실행됩니다. SQL Server 이외 게시자에 대해서는 지원되지 않습니다.

주의 사항주의

이 저장 프로시저를 잘못 사용하거나 잘못된 LSN 값을 지정하면 배포 에이전트에서 구독자에 이미 적용된 변경 사항이 취소되거나 나머지 모든 변경 사항을 건너뛸 수 있습니다.

항목 링크 아이콘Transact-SQL 구문 표기 규칙

구문

sp_setsubscriptionxactseqno [ @publisher= ] 'publisher', [ @publisher_db= ] 'publisher_db', [ @publication= ] 'publication', [ @xact_seqno= ] xact_seqno

인수

  • [ @publisher= ] 'publisher'
    게시자의 이름입니다. publishersysname이며 기본값은 없습니다.

  • [ @publisher_db= ] 'publisher_db'
    게시 데이터베이스의 이름입니다. publisher_dbsysname이며 기본값은 없습니다. SQL Server 이외 게시자의 경우 publisher_db는 배포 데이터베이스의 이름입니다.

  • [ @publication= ] 'publication'
    게시의 이름입니다. publicationsysname이며 기본값은 없습니다. 여러 게시에서 배포 에이전트를 공유하는 경우 publication에 값 ALL을 지정해야 합니다.

  • [ @xact_seqno= ] xact_seqno
    구독자에서 발생하는 오류의 원인인 트랜잭션의 xact_seqno입니다. xact_seqno는 **varbinary(16)**이며 기본값은 없습니다.

결과 집합

열 이름

데이터 형식

설명

ORIGINAL XACT_SEQNO

varbinary(16)

구독자에 적용될 다음 트랜잭션의 원래 LSN입니다.

UPDATED XACT_SEQNO

varbinary(16)

구독자에 적용될 다음 트랜잭션의 업데이트된 LSN입니다.

SUBSCRIPTION STREAM COUNT

int

마지막 동기화 중에 사용된 구독 스트림의 수입니다.

반환 코드 값

0(성공) 또는 1(실패)

주의

sp_setsubscriptionxactseqno는 트랜잭션 복제에 사용합니다.

sp_setsubscriptionxactseqno는 피어 투 피어 트랜잭션 복제 토폴로지에 사용할 수 없습니다.

sp_setsubscriptionxactseqno는 구독자에서 적용될 때 오류를 일으키는 특정 트랜잭션을 건너뛸 때 사용할 수 있습니다. 오류가 있으면 배포 에이전트가 중지된 후에 배포자에서 sp_helpsubscriptionerrors(Transact-SQL)를 호출하여 실패한 트랜잭션의 xact_seqno 값을 검색하고 sp_setsubscriptionxactseqno를 호출하여 이 xact_seqno 값을 전달합니다. 그러면 이 LSN 이후의 명령만 처리됩니다.

xact_seqno에 값 0을 지정하여 배포 데이터베이스에 있는 모든 보류 중인 명령을 구독자에 배달합니다.

배포 에이전트에서 복수 구독 스트림을 사용하는 경우 sp_setsubscriptionxactseqno가 실패할 수도 있습니다.

이 오류가 발생하면 단일 구독 스트림으로 배포 에이전트를 실행해야 합니다. 자세한 내용은 복제 배포 에이전트를 참조하십시오.

사용 권한

sysadmin 고정 서버 역할의 멤버 또는 db_owner 고정 데이터베이스 역할의 멤버만이 sp_setsubscriptionxactseqno를 실행할 수 있습니다.

변경 내역

업데이트된 내용

@xact_seqno 인수에 대한 정의를 변경했습니다. 이 인수에는 구독자에서 적용되는 데 실패하는 트랜잭션의 xact_seqno가 포함되어야 합니다. 이전 정의에서는 오류가 발생한 다음 트랜잭션이라고 되어 있었으며 이를 수정했습니다.