2007~2011/SQL Server2011. 5. 13. 00:37
SQL Server 2005 failover clustering 환경에서 SQL Server 리소스로 사용하는 디스크를 제거하는 과정에서 종속성으로 묶여 있는 SQL Server, SQL Server Agent 리소스를 함께 삭제한 경우 클러스터 관리자에서 수동으로 리소스를 추가하여 SQL Server, SQL Server Agent 리소스를 생성하였지만 SQL Server 서비스가 온라인 실패되는 현상에 대해서 아래와 같이 정리하였습니다. 


[환경]
Windows Server 2003 
SQL Server 2005 failover cluster (2 node)
 

[현상]
1. 클러스터 관리자에서 SQL Server 그룹 내 디스크 리소스를 SQL Server 서비스에서 종속성을 제거하지 않은 채로 해당 DISK 리소스를 삭제하여 DISK, SQL Server, SQL Server Agent 3개의 리소스가 자동으로 모두 삭제됨 

2. 클러스터 관리자에서 리소스 추가를 통해 SQL Server, SQL Server Agent 서비스를 수동으로 다시 생성한 뒤 SQL Server 서비스를 online 시도하였으나 클러스터 관리자에서는 별다른 메시지 없이 온라인 실패로 나타납니다. 


[원인]
HKLM\Cluster\Resources\<SQL Server GUID>\Parameters 항목에 InstanceName, VirtualServerName 2개의 Key 가 존재하지 않습니다. 위 레지스트리키는 클러스터 관리자에 의해 연결하고 SQL Server 서비스를 시작하기 위해 사용되므로 반드시 값이 존재해야 합니다. SQL Server 리소스가 삭제된 후 신규 생성 과정에서 자동으로 이 값이 생성되지 않았습니다. 


[해결방안]
아래 2개의 레지스트리 경로에 SQL Server 인스턴스 이름과 가상 서버 이름 레지스트리 키를 생성합니다.

HKLM\Cluster\Resources\<SQL Server GUID>\Parameters 
HKLM\Cluster\Resources\<SQL Server GUID>\Parameters


1. InstanceName 
 가. 값 이름 : InstanceName
 나. 값 종류 : REG_SZ (String Value)
 다. 값 데이터 : MSSQLSERVER (기본 인스턴스 이름)
 
2. VirtualServerName 
 가. 값 이름 : VirtualServerName
 나. 값 종류 : REG_SZ (String Value)
 다. 값 데이터 : LAIGODB
 (SQL Server ERRORLOG 에서 가상 서버 이름을 확인하실 수 있습니다)

레지스트리 키를 입력한 후 failover 를 통해 두 노드 모두 정상적으로 Key 입력이 반영되었는지 또 다른 오류가 발생하는 부분은 없는지 확인이 필요합니다. 


[분석결과]
SQL Server ERRORLOG 확인 
 

Error: 26054, Severity: 16, State: 1. 
Could not find any IP address that this SQL Server instance depends upon.  Make sure that the cluster service is running, that the dependency relationship between SQL Server and Network Name resources is correct, and that the IP addresses on which this SQL Server instance depends are available.  Error code: 0x103. 

Error: 17182, Severity: 16, State: 1. 
TDSSNIClient initialization failed with error 0x103, status code 0xa. 

Error: 17182, Severity: 16, State: 1. 
TDSSNIClient initialization failed with error 0x103, status code 0x1. 

Error: 17826, Severity: 18, State: 3. 
Could not start the network library because of an internal error in the network library. To determine the cause, review the errors immediately preceding this one in the error log. 

Error: 17120, Severity: 16, State: 1. 
SQL Server could not spawn FRunCM thread. Check the SQL Server error log and the Windows event logs for information about possible related problems. 


[참고자료]
SQL SERVER 2005 RESOURCE FAILS TO COME ONLINE ON CLUSTER AFTER CHANGING THE SAN DRIVE TO ADD MORE DISK SPACE
Posted by Lai Go