BLOG main image
분류 전체보기 (45)
SQL Server 이야기 (45)
일상 (0)
Visitors up to today!
Today hit, Yesterday hit
daisy rss
tistory 티스토리 가입하기!
2008. 4. 7. 21:05

복제라는 SQL Server의 기능을 활용하여 여러 개의 테이블을 다른 구독서버로 데이터를 동기화 하는 용도로 사용됩니다.

테이블일 경우에는 게시자의 트랜잭션 로그 파일을 읽어 배포자로 보낸 후 배포자는 다시 구독자에게 넘겨주는 방법으로 동작 하게 됩니다.


데이터 뿐만이 아니라 게시자에서 실행되는 SP의 실행도 구독에도 동일히 반영할 수 있습니다.


아래의 그림을 보면 "저장 프로시져 실행"," 직렬화된 트랜잭션에서의 실행" 두 가지를 선택하여 구독자에게 전달 할 수 있습니다.

SP의 직렬화된 트랜잭션에서의 실행은 SERIALIZABLE 격리수준에서 명시적 트랜잭션을 사용한 SP에 대해서만 구독으로 전달 하겠다라는 의미입니다.

자세한 내용은 아래 테스트를 참고 하세요.


SET TRANSACTION ISOLATION LEVEL SERIALIZABLE

BEGIN TRAN

    exec P..up_b 3,'SONGHYOK'

COMMIT

--테스트 시작

create table P..b (a int, b char(100))

create table S..b (a int, b char(100))


Create Proc p..up_B

@a int

,@b char(100)

as

insert into b valueS(@a,@b)


exec p..up_b 1,'Song'


<SQL Server 2005 SP 아티클>


<SQL Server 2000 SP 아티클>


<게시서버에서 호출 시 구독서버에도 동일한 내용이 반영되는 것 확인한 추적 로그>