다음을 통해 공유


Always On 가용성 그룹을 위한 CLUSTER.LOG 생성 및 분석

적용 대상: SQL Server

장애 조치(failover) 클러스터 리소스로 SQL Server, WSFC(Windows Server 장애 조치(failover) 클러스터 서비스) 클러스터 및 SQL Server 내에서 모니터링할 수 없는 SQL Server 리소스 DLL(hadrres.dll) 사이의 외부 상호 작용이 있습니다. WSFC 로그 CLUSTER.LOG는 WSFC 클러스터 또는 SQL Server 리소스 DLL의 문제를 진단할 수 있습니다.

클러스터 로그 생성

다음과 같은 두 가지 방법으로 클러스터 로그를 생성할 수 있습니다:

  1. 명령 프롬프트에서 cluster /log /g 명령을 사용해 주세요. 이 명령은 각 WSFC 노드의 \windows\cluster\reports 디렉터리에 클러스터 로그를 생성합니다. 이 방법의 장점은 /level 옵션을 사용하여 생성된 로그의 세부 수준을 지정할 수 있다는 것입니다. 단점은 생성된 클러스터 로그에 대한 대상 디렉터리를 지정할 수 없다는 것입니다. 자세한 내용은 Windows Server 2008 장애 조치(failover) 클러스터링에서 cluster.log를 만드는 방법을 참조하세요.

  2. Get-ClusterLog PowerShell cmdlet을 사용합니다. 이 방법의 장점은 cmdlet에서 실행하는 노드의 모든 노드에서 한 대상 디렉터리까지 클러스터 로그를 생성할 수 있다는 것입니다. 단점은 생성된 로그의 세부 수준을 지정할 수 없다는 것입니다.

다음 PowerShell 명령은 지난 15분 동안의 모든 클러스터 노드에서의 클러스터 로그를 생성하여 현재 디렉터리에 배치합니다. 관리자 권한으로 PowerShell 창에서 명령을 실행합니다.

Import-Module FailoverClusters   
Get-ClusterLog -TimeSpan 15 -Destination .  

Always On 로그 세부 정보 표시

가용성 그룹을 위한 CLUSTER.LOG에서 로그의 세부 정보를 늘릴 수 있습니다. 세부 정보를 수정하려면 다음 단계를 따라 해 보세요:

  1. 시작 메뉴에서 장애 조치(Failover) 클러스터 관리자를 엽니다.

  2. 클러스터와 서비스 및 애플리케이션 노드를 확장한 이후에 가용성 그룹 이름을 클릭합니다.

  3. 세부 정보 창에서 가용성 그룹 리소스를 마우스 오른쪽 단추로 클릭하고 속성을 클릭합니다.

  4. 속성 탭을 클릭합니다.

  5. VerboseLogging 속성을 수정합니다. 기본적으로 VerboseLogging은 정보, 경고 및 오류를 보고하도록 0설정됩니다. VerboseLogging은 에서02 설정할 수 있습니다.

  6. 확인을 클릭합니다.

  7. 가용성 그룹 리소스를 다시 마우스 오른쪽 단추로 클릭하고 이 리소스를 오프라인으로 전환합니다.

  8. 가용성 그룹 리소스를 다시 마우스 오른쪽 단추로 클릭하고 이 리소스를 온라인으로 가져오기를 클릭합니다.

가용성 그룹 리소스 이벤트

아래 표에는 가용성 그룹 리소스와 관련한 CLUSTER.LOG에서 볼 수 있는 다양한 종류의 이벤트를 보여주고 있습니다. WSFC의 RHS(Resource Hosting Subsystem) 및 RCM(Resource Control Monitor)에 대한 자세한 내용은 Windows Server 2008 장애 조치(failover) 클러스터의 RHS(Resource Hosting Subsystem)를 참조해 주세요.

식별자 Source CLUSTER,LOG의 예제
[RES][hadrag]로 접두사가 붙은 메시지 hadrres.dll(Always On 리소스 DLL) 00002cc4.00001264::2011/08/05-13:47:42.543 INFO [RES] SQL Server 가용성 그룹 <ag>: [hadrag] 오프라인 요청.

00002cc4.00003384::2011/08/05-13:47:42.558 ERR [RES] SQL Server 가용성 그룹 <ag>: [hadrag] 임대 스레드 종료

00002cc4.00003384::2011/08/05-13:47:42.605 INFO [RES] SQL Server 가용성 그룹 <ag>: [hadrag] 무료 SQL 명령문

00002cc4.00003384::2011/08/05-13:47:42.902 INFO [RES] SQL Server 가용성 그룹 <ag>: [hadrag] SQL Server에서 연결 끊기
접두사가 붙은 메시지 [RHS] RHS.EXE (Resource Hosting Subsystem, hadrres.dll 호스트 프로세스) 00000c40.00000a34::2011/08/10-18:42:29.498 INFO [RHS] 리소스 ag가 오프라인 상태가 되었습니다. RHS는 RCM에 리소스 상태를 곧 보고할 것입니다.
[RCM]로 접두사가 붙은 메시지 리소스 제어 모니터(클러스터 서비스) 000011d0.00000f80::2011/08/05-13:47:42.480 INFO [RCM] rcm::RcmGroup::Move: 먼저 그룹 'ag'를 오프라인으로 만듭니다...

000011d0.00000f80::2011/08/05-13:47:42.496 INFO [RCM] TransitionToState(ag) Online-->OfflineCallIssued.
RcmApi/ClusAPI 주로 SQL Server가 작업을 요청한다는 걸 의미하는 API 호출입니다 000011d0.00000f80::2011/08/05-13:47:42.465 INFO [RCM] rcm::RcmApi::MoveGroup: (ag, 2)

Always On 리소스 DLL을 격리된 상태에서 디버그

Always On 리소스 DLL(hadrres.dll)을 다른 리소스 DLL과 분리된 상태에서 실행하도록 클러스터를 구성하는 것이 디버깅 모범 사례입니다. 기본적으로, WSFC 클러스터는 단일 rhs.exe 인스턴스에서 모든 리소스 DLL을 실행합니다. 이렇게 되면 클러스터 내의 모든 리소스는 동일한 rhs.exe 인스턴스를 공유하게 되는 것입니다. 디버거를 사용하여 hadrres.dll 디버그하려고 할 때 중단 지점에서 일시 중지하면 rhs.exe 인스턴스를 공유하는 다른 리소스도 일시 중지될 수 있습니다. 또한 동일한 클러스터에서 여러 가용성 그룹을 실행하는 할 때 중단 지점에서 일시 중지하여 하나의 가용성 그룹을 디버그할 때 동일한 구성 때문에 모든 가용성 그룹이 일시 중지될 수 있습니다.

가용성 그룹을 다른 클러스터 리소스 DLL(다른 가용성 그룹 포함)과 분리하려면 다음을 수행하여 별도의 rhs.exe 프로세스 내에서 hadrres.dll을 실행합니다.

  1. 레지스트리 편집기를 열고 HKEY_LOCAL_MACHINE\Cluster\Resources 키로 이동합니다. 이 키에는 각각 다른 GUID를 가진 모든 리소스에 대한 키가 포함되어 있습니다.

  2. 가용성 그룹 이름과 일치하는 이름값을 포함하는 리소스 키를 찾습니다.

  3. SeparateMonitor 값을 1로 변경합니다.

  4. WSFC 클러스터에서 가용성 그룹에 대한 클러스터 형 서비스를 다시 시작해 보세요.