본문 바로가기

Programming/mssql2005

MSSQL2005 병합복제 방법(Merge Replication)

MSSQL 2005에 있는 병합복제에 대해서 정리를 하였다.

스크린샷 찍느라 죽는줄 알았다.

자세히 해놔야 다음에 또 안까먹지...

특이한 사항은 미러링과 마찬가지로 서비스 계정을 맞춰줘야하는 것이다.

안그럼 로그인 안된다고 때쓴다. 물론 안맞추고 어째어째 하는 방법을 보긴했는데

복잡하기만 하고 그냥 이방법이 제일 깔끔하다.(사실 이 방법밖에 못하겠다.)

아래 과정은 같은 네트워크 상의 두개 서버를 병합복제 하는 예이다.
================================================================================

1. 서비스 구동 계정 변경

아래 그림처럼 필자는 Administrator로 변경하였다. 각자 맞게 변경하면 될것 같고.
이 계정 그대로 병합 복제 설정까지 다 한다.
사용자 삽입 이미지


자 변경된 이후에 다음과 같이 바뀌었다. 서비스가 어디 있는지는 알테고..
사용자 삽입 이미지


2. 구독자 끌어오기를 위해 게시자 네트워크 공유 설정

같은 네트워크에 있는 경우 게시가 네트워크 공유를 설정하면 구독자가 새 데이터에 대해 끌어오기를 하여
게시자 측의 부하를 줄여줄 수 있다. 네트워크 공유를 해야하는 폴더는 DB의 스냅샷 폴더이다.
다음 위치에 있는 폴더를 네트워크 공유를 한다.(물론 다른 환경에서는 이 경로가 달라지겠지만 폴더 이름은
그대로이다.)
사용자 삽입 이미지
 

3. 배포자 설정

서버 A를 배포자로 만든다. SQL Management로 접속한 후 아래 그림 처럼 선택!!
접속할 때는 윈도우 로그인으로 Administrator로 DB에 접속하였다.
사용자 삽입 이미지
 
여기서는 그냥 다음~~
사용자 삽입 이미지
 
자 네트워크 공유를 해놓았다면 아래 그림처럼 변경하고.
서버 A의 이름이 OMC-SRV1이라서 다음 그림처럼 된다.
사용자 삽입 이미지
 
배포 데이터베이스 이름을 넣는 곳엔 적당히 넣음된다. 아래 데이터베이스 파일폴더도 각자의 환경에 맞게~~
사용자 삽입 이미지
 
이 예에서는 배포 서버가 게시 서버도 되므로 아래 그림처럼 체크하고 간다~
만약 게시자가 다르다면 추가 버튼을 눌러서 설정해야하는데 여기서는 안한다.
사용자 삽입 이미지
 
배포 마지막 단계다. 쉽다. 그냥 다음 누르면 된다. -_-;
사용자 삽입 이미지
 
이제 마음속으로 잘되라~ 잘되라~~ 를 3번 외운다. 주문을 외워야 배포 구성이 잘된다.(훗~~ -ㅅ-)
사용자 삽입 이미지
 


4. 게시자 설정

배포자도 구성이 다 되었고 이제 게시자를 설정해보자!!
아래 그림처럼 로컬 게시에 마우스 오른버튼~ 새 게시~
사용자 삽입 이미지
 
DUMMY_DB는 미리 만들어놓은 DB이다. 여러개 만들어두었으면 여러개 나올테니 적당한 넘 골라잡고~
사용자 삽입 이미지
 
병합복제니까 병합 게시로 선택~~
여기서 잠깐~~ 다른 복제 하려면 여기서 다른거 고르면 된다.. 아래 그림처럼 복제 방법은 여러가지이다.
사용자 삽입 이미지
 
구독자가 어떤 DB인가를 설정하는 것인데. 필자의 두 서버는 둘다 SQL 2005이므로 아래와 같이 설정했다.
사용자 삽입 이미지
 
게시할 테이블을 선택하고~~
사용자 삽입 이미지
 
이 부분 중요하다. 게시 마법사가 위에서 선택한 테이블에 Unique 타입의 필드를 하나 자동으로 추가한다.
나중에 게시 마법사가 끝나고 나서 보면 알겠지만 마지막 필드에 못보던 넘이 추가가 되어있다.
이넘은 데이터가 변경되었나 되지 않았나~ 양방향 복제 이므로 충돌검사 등으로 이용된다.
DB API를 개발할 때, 특히 InsertUpdate를 할 때 새로 추가된 필드를 고려해야한다.
사용자 삽입 이미지
 
이 부분은 그냥 다음~ 필터링 할 일이 있을라나?
사용자 삽입 이미지

스냅숏? 스냅샷? 을 구성한다. 이부분도 그냥 디폴트로 다음~
사용자 삽입 이미지

스냅숏 에이전트 보완 설정이다. 여러가지 방법이 있겠지만  쉽게 가보자. 보안 설정 버튼 누르고
사용자 삽입 이미지

SQL Server 에이전트 서비스 계정으로 실행
다음 Windows 계정으로 실행 해서 바꿀 수도 있지만... 그 이후는 각자 알아서~~
사용자 삽입 이미지

자 요로코롬 바뀌었다. 필자는 서비스 구동 계정을 Administrator로 해놨으니 아마 이넘으로 되겠지~
사용자 삽입 이미지

드디어 게시 만든다.
사용자 삽입 이미지

게시 이름을 그냥 알아서 적당히~
사용자 삽입 이미지

배포와 마찬가지로 마음속으로 3번 외운다. 잘되라 잘되라~~
사용자 삽입 이미지

오호 생겼다. 게시!!!
사용자 삽입 이미지


5. 구독자 설정

구독자는 다른 서버에서 설정해야한다.
로컬 구독에서 새 구독을~

사용자 삽입 이미지

자 게시자 찾자.
사용자 삽입 이미지

게시자가 있는 넘으로 연결하자.
필자는 두 서버를 똑같이 해놨기 때문에 Windows 인증으로 무리 없이 들어간다.
사용자 삽입 이미지

오 게시자 나온다!!!
사용자 삽입 이미지

자 끌어오기 구독 선택~~
이넘을 하려면 위에서 말했던 것 처럼 네트워크 공유 해줘야한다.
사용자 삽입 이미지

구독 데이터베이스 설정하시고~
처음에는 없어서 DB를 만들어야한다.
아래 그림의 구독 데이터베이스에서 선택하여 만들 수 있다.
사용자 삽입 이미지

보안 설정이다. 이번에도 쉽게 간다!!
사용자 삽입 이미지

게시자에서 했던것 처럼 그냥 SQL Server 에이전트 서비스 계정으로 실행~
사용자 삽입 이미지

그럼 아래 그림처럼 설정이 완료되고~
사용자 삽입 이미지

에이전트는 항상 실행되게 놔두자~
사용자 삽입 이미지

병합복제는 초기화 꼭 해줘야한다. 즉시!!
사용자 삽입 이미지

요건 클라이언트로 해놓고. 충돌 해결 우선 순위에 대한 내용은 이 예제를 살짝 벗어나니 패스~
사용자 삽입 이미지

드디어 구독자 설정 끝이다. 만들자~
사용자 삽입 이미지

수리수리 마수리~ 잘되어라~~
사용자 삽입 이미지

오호 생겼다. 구독~
상태를 보기 위해 동기화 상태 보기를 해보자.

사용자 삽입 이미지


검색 중이시란다. 빨랑 빨랑 해라!!
사용자 삽입 이미지

오 드디어 폴링 상태로 들어갔다.
아래 그림처럼 60초마다 한번씩 게시 서버에서 변경된 내용이 있나 없나 확인해주신다.
그리고 그때마다 내 서버에 변경된 내용도 알려주신다.
참 고마운넘이군!!!
사용자 삽입 이미지

데이터 변경 하고 요리저리 테스트 하는건 각자가 알아서 하면 될거 같고.
정리해야지 했는데 겨우 했네.
다른 복제들도 이와 비슷하게 진행된다. 오히려 더 쉬울지도....
미러링에 비하면야 무지 쉽다. 복제!!!
================================================================================
최초 작성일 : 2007년 12월 20일 목요일