sql server 복제에서는 서버 연결 시 실제 서버 이름이 필요합니다.
개발사에서 웹 에서 게임 DB 에 내용을 거의 실시간으로 보여주기 위해 복제 DB 를 설정하다가
복제 생성시 아래와 같은 오류가 발생한다고 Help 요청이 들어왔다.
===================================
xxxxxxxxxxxxxx에 연결할 수 없습니다.
===================================
SQL Server 복제에서는 서버 연결 시 실제 서버 이름이 필요합니다. 서버 별칭, IP 주소 또는 다른 대체 이름을 통한 연결은 지원되지 않습니다. 실제 서버 이름 'xxxxxxxxxxxxxx'을(를) 지정하십시오. (Replication.Utilities)
------------------------------
프로그램 위치:
위치: Microsoft.SqlServer.Management.UI.ReplicationSqlConnection.CheckServerAlias(ServerConnection conn)
위치: Microsoft.SqlServer.Management.UI.ReplicationSqlConnection.ValidateConnection(UIConnectionInfo connInfo, IServerType server)
위치: Microsoft.SqlServer.Management.UI.ConnectionDlg.Connector.ConnectionThreadUser()
해당 문제는 컴퓨터 이름을 변경시에 발생한다.
-----------------------------
이유인 즉 mssql2008을 설치하면 설치시에 서버의 HostName 이 저장된다.
그 후에 해당 서버에 HostName 이 변경 되면서 게시나 복제를 할려면 옛날 서버 이름으로 접근을 해서 위와 같은 오류가 발생한 것이다.
아래와 같이 기존 @@SERVERNAME 이름을 현재 HostName 으로 변경해 주면 된다.
USE master
GO
-- 예전 서버 이름을 확인한다.
SELECT @@SERVERNAME
-- 예전 서버 이름을 버린다.
EXEC sp_dropserver 'Old Server Name', 'droplogins' // 예전 서버 이름 입력
GO
-- 새 서버 이름을 등록한다.
EXEC sp_addserver 'New Server Name', 'local' // 새 서버 이름 입력
GO
-- 반드시 '서비스 재시작'을 해야 적용 된다.
'윈도우즈 > MSSQL' 카테고리의 다른 글
MSSQL sqlserver 오류 15404 windows nt 그룹/사용자 에 대한 정보를 가져올 수 없습니다. 오류 코드 sqlstate 42000 connlsloginsysadmin (0) | 2019.05.20 |
---|---|
DB간 테이블 복사 쿼리 (0) | 2015.01.27 |
[MSSQL] 다른 데이터베이스명으로 복원하기 (0) | 2015.01.27 |
SQL Injection 공격 복구 쿼리문 (0) | 2015.01.27 |
MSSQL 필드 속성 변경 (0) | 2015.01.27 |