월요일, 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 로 구독 서버 명 확인




댓글 없음: