SQL Server cluster 환경에서 새로운 노드를 추가하고 SQL 가상 서버를 설치하는 과정에서 발생하는 레지스트리 충돌 현상입니다. 한 번에 설치가 완료되지 않았다면 노드에 남아있는 레지스트리 정보에 의해 설치가 실패할 수 있습니다. 참고자료로 링크된 KB문서에는 SQL Server 를 수동으로 제거하는 방법에 설명되어 있습니다.
[환경]
Windows 2000 Server SP4+
SQL Server 2000
[현상]
Passive node 에 SQL Server cluster 를 설치하는 과정에서 아래 오류 메시지가 발생하며 작업이 취소되었습니다.
"가상 서버(KGMETASQL)에 있는 하나 이상의 노드에서 레지스트리가 충돌되었습니다."
[원인]
MSCS 환경에서 Passive Node 에 SQL Server 2000 cluster 설치가 정상적으로 진행되지 않고 중지 되었을 때, Passvie Node 에 제거되지 않은 Registry 정보에 의해 충돌이 발생하였습니다.
[해결방법]
Passive Node 에서 아래 레지스트리 키를 삭제한 뒤 설치를 다시 시도하여 문제를 해결 하였습니다.
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\MSSQLServer
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\SQLSERVERAGENT
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\MSSQLServerADHelper
[분석결과]
C:\WINNT\SQLSTP.LOG 파일 확인
04:12:40 PrefOwners = LAIGOFS01,LAIGOFS02, NumIp = 2
04:12:40 Begin Action : ValidateNodeActions
04:12:40 Begin Action : EnumerateInstancesForVirtualServer
04:12:40 End Action : EnumerateInstancesForVirtualServer
04:12:40 Begin Action : ValidateNodeActions
04:12:41 End Action : ValidateNodeActions
04:12:41 가상 서버(LAIGOSQL)에 있는 하나 이상의 노드에서 레지스트리가 충돌되었습니다. 이 작업을 계속할 수 없습니다.
04:12:51 가상 서버(LAIGOSQL)에 있는 하나 이상의 노드에서 레지스트리가 충돌되었습니다. 이 작업을 계속할 수 없습니다.
04:12:51 End Action : ValidateNodeActions
04:12:56 ShowDlgClusterDef returned: -1
04:12:56 ShowDlgClusterDef: GetLastError returned: 0
04:12:56 작업을 완료했습니다.
[참고자료]
How to manually remove SQL Server 2000 default, named, or virtual instance
http://support.microsoft.com/kb/290991
작성자 : Lai Go / 작성일자 : 2009.09.23