레이블이 Replication인 게시물을 표시합니다. 모든 게시물 표시
레이블이 Replication인 게시물을 표시합니다. 모든 게시물 표시

월요일, 7월 02, 2012

SQL Server 복제환경에서 구독자의 호스트명(IP) 변경



1.     개요
이미 구성되어 운영중인 복제 서비스에서 구독자의 서버 정보가 서버 명 즉, 호스트 명이 아닌 IP로 등록되어 있을 경우, 해당 IP가 변경되면 복제 서비스가 더 이상 동작되지 않는 일이 발생하게 된다.

이러한 문제가 발생했을 때, 조치 할 수 있는 일반적인 방법은 구독자를 삭제하고 다시 구성하는 것이나
분,초를 다투는 운영서버 환경에서 다운타임이 어느 정도 될지 예측하는 것은 쉬운 일이 아니다.

따라서, 이 문서에서는 구독자의 속정정보인 메타데이터를 변경하는 방법을 제시하고자 한다.
하지만 주의할 것은, 이 방식은 알려지지 않는 시스템 테이블을 변경하는 작업이 수반되며
이는 시스템에 심각한 영향을 줄 수 있으므로, 반드시 관리자는 주의 깊게 수행해야 한다.

위와 같은 문제를 근본적으로 피해갈 수 있는 방법은 복제 구성 시 공식문서에 나와있듯이 호스트 명 혹은 도메인 명으로 등록하는 것이 가장 바람 직 하다.


2.     구독자 서버의 속성 변경 절차
a.     먼저 도메인 명으로 구독서버를 게시자에 등록한다.


다음 명령어를 통해 등록된 서버를 확인한다.


b.   배포 데이터베이스에서 해당 호스트 네임에 해당하는 subscriber_id를 업데이트 한다.
다음 테이블을 보면 등록된 구독자에 대한 구독 서버 id가 설정되어 있고, 이 값을
Hostname으로 매핑한 srvid 값으로 변경한다.





또한 배포자데이터베이스의 배포에이전트 테이블의 subscriber_id도 역시 동일하게 수정한다.



  
[수정 후]


c.   다음은 게시 데이터베이스(여기서는 northwind)내의 시스템 테이블인 sysSubscriptions 테이블의 srvid도
동일하게 Hostname과 매핑된 srvid값으로 수정한다.






d.  배포 에이전트의 속성에서 배포에이전트 시작 파라미터 값 중 구독 서버 값(아마 IP값일 것이다)
을 호스트 명으로 수정하고 다시 시작한다.





e.   작업 결과 확인
게시데이터베이스에서 다음 명령어 sp_helpsubscription 로 구독 서버 명 확인