sitelink1 | http://blog.naver.com/asuno1/220291795587 |
---|---|
sitelink2 |
"sql server 복제에서는 서버 연결 시 실제 서버 이름이 필요합니다 "
Ms-sql 2012 에서 Ms-sql 2012로 스냅샵 & 트랜잭션 복제 중 문제 발생
A서버에서 B서버로 밀어넣기 구독을 세팅하고 있는데
B서버가 네트워크상에 있는 컴퓨터일때는 세팅이 가능 했다.
B서버가 원격지에 있는 컴퓨터를 세팅을 할려고 IP를 입력하니까 아래와 같은 에러가 발생한다.
* 1. 결론 부터 말하자면 게시자의 Windows의 hosts 파일에 ip 와 host name을 맵핑 시켜 주면 된다.
위 작업으로 해결이 되지 않을 경우 게시자에서 등록한 hostname 구독자의 MsSQL의 SERVER NAME 을 동일하게 맞춰 주어야 한다.
위 작업은 게시자인 PC에서 작업해야 하고 지금부터 작업은 구독자의 PC 에서 해야 한다.
정확히는 구독자의 SERVER NAME 을 셋팅 한후 위 작업의 Hostname 과 동일하게 맞춰 주워야 한다.
* 2. 결론부터 말하자면 아래 Query를 구독자 MSSQL 에서 실행해 준다.
-- 예전 서버 이름을 확인한다.
SELECT @@SERVERNAME
-- 예전 서버 이름을 버린다.
EXEC sp_dropserver 'Old Server Name', 'droplogins'
GO
-- 새 서버 이름을 등록한다.
EXEC sp_addserver 'New Server Name', 'local'
GO
--------------------------------------------------------------------------------------------------------
1번 방법 이미지 정리 ( 2번은 정리 없당.. ㅎㅎ)
새 구독 마법사를 사용하여 트랜잭션 복제를 구성 중에
"구독자 추가"를 클릭하여 새로운 구독자 정보를 입력 하면
서버 이름(S) : 부분에 211.xxx.xxx.xxx 와 같이 ip address를 입력했을경우 아래와 같은 오류와 대면하게 된다.
해당 문제를 해결하기 위해선
c:\windows\system32\drivers\etc\hosts 파일에 구독 서버의 정보를 추가하고
SQL에서 위에서 추가한 호스트 이름으로 연결해 하면된다.
hosts 파일 과 ip 맴핑은 검색해 보시길.. ^^