다음을 통해 공유


장애 조치 클러스터 인스턴스에 대한 정책

SQL Server FCI(장애 조치 클러스터 인스턴스)에서는 한 번에 하나의 노드만 WSFC(Windows Server 장애 조치(failover) 클러스터) 클러스터 리소스 그룹을 소유할 수 있습니다. 클라이언트 요청은 FCI의 이 노드를 통해 제공됩니다. 실패하고 다시 시작에 실패한 경우 그룹 소유권은 FCI의 다른 WSFC 노드로 이동됩니다. 이 프로세스를 장애 조치(failover)라고 합니다. SQL Server 2014는 오류 검색의 안정성을 높이고 유연한 장애 조치(failover) 정책을 제공합니다.

SQL Server FCI는 장애 조치(failover) 감지를 위해 기저 WSFC 서비스에 의존합니다. 따라서 두 메커니즘은 FCI에 대한 장애 조치(failover) 동작을 결정합니다. 전자는 기본 WSFC 기능이며, 후자는 SQL Server 설치 프로그램에서 추가한 기능입니다.

  • WSFC 클러스터는 자동 장애 조치에서 고유한 장애 조치 대상을 보장하기 위해 쿼럼 구성을 관리합니다. WSFC 서비스는 클러스터가 항상 최적의 쿼럼 상태인지 여부를 확인하고 그에 따라 리소스 그룹을 온라인 및 오프라인으로 전환합니다.

  • 활성 SQL Server 인스턴스는 전용 연결을 통해 WSFC 리소스 그룹에 구성 요소 진단 집합을 주기적으로 보고합니다. WSFC 리소스 그룹은 다시 시작 및 장애 조치(failover)를 트리거하는 실패 조건을 정의하는 장애 조치(failover) 정책을 유지 관리합니다.

이 항목에서는 위의 두 번째 메커니즘에 대해 설명합니다. 쿼럼 구성 및 상태 검색에 대한 WSFC 동작에 대한 자세한 내용은 WSFC 쿼럼 모드 및 투표 구성(SQL Server)을 참조하세요.

중요합니다

FCI로의 자동 장애 조치(failover)와 FCI에서의 자동 장애 조치는 AlwaysOn 가용성 그룹에서 허용되지 않습니다. 그러나 AlwaysOn 가용성 그룹에서는 FCI와 수동 장애 조치(failover)가 허용됩니다.

장애 조치(failover) 정책 개요

장애 조치(failover) 프로세스는 다음 단계로 나눌 수 있습니다.

  1. 상태 모니터링

  2. 오류 확인

  3. 오류에 응답

건강 상태 모니터링

FCI에 대해 모니터링되는 상태의 세 가지 유형은 다음과 같습니다.

SQL Server 서비스 상태

WSFC 서비스는 활성 FCI 노드에서 SQL Server 서비스의 시작 상태를 모니터링하여 SQL Server 서비스가 중지된 시기를 감지합니다.

SQL Server 인스턴스의 응답성

SQL Server를 시작하는 동안 WSFC 서비스는 SQL Server 데이터베이스 엔진 리소스 DLL을 사용하여 상태를 모니터링하는 데만 사용되는 별도의 스레드에 대한 새 연결을 만듭니다. 이렇게 하면 SQL 인스턴스에 부하가 있는 동안 상태를 보고하는 데 필요한 리소스가 있습니다. 이 전용 연결을 사용하여 SQL Server는 sp_server_diagnostics(Transact-SQL) 시스템 저장 프로시저를 반복 모드로 실행하여 SQL Server 구성 요소의 상태를 주기적으로 리소스 DLL에 보고합니다.

리소스 DLL은 상태 검사 시간 제한을 사용하여 SQL 인스턴스의 응답성을 결정합니다. HealthCheckTimeout 속성은 리소스 DLL이 WSFC 서비스에 응답하지 않는 것으로 SQL 인스턴스를 보고하기 전에 sp_server_diagnostics 저장 프로시저를 기다려야 하는 기간을 정의합니다. 이 속성은 장애 조치(failover) 클러스터 관리자 스냅인뿐만 아니라 T-SQL을 사용하여 구성할 수 있습니다. 자세한 내용은 HealthCheckTimeout 속성 설정 구성을 참조하세요. 다음 항목에서는 이 속성이 시간 제한 및 반복 간격 설정에 미치는 영향을 설명합니다.

  • 리소스 DLL은 sp_server_diagnostics 저장 프로시저를 호출하고 반복 간격을 HealthCheckTimeout 설정의 3분의 1로 설정합니다.

  • sp_server_diagnostics 저장 프로시저가 느리거나 정보를 반환하지 않는 경우 리소스 DLL은 Sql 인스턴스가 응답하지 않는다는 것을 WSFC 서비스에 보고하기 전에 HealthCheckTimeout에 지정된 간격을 기다립니다.

  • 전용 연결이 끊어지면 리소스 DLL은 SQL 인스턴스가 응답하지 않는다는 것을 WSFC 서비스에 보고하기 전에 HealthCheckTimeout에서 지정한 간격에 대해 SQL 인스턴스에 대한 연결을 다시 시도합니다.

SQL Server 구성 요소 진단

시스템 저장 프로시저는 SP_SERVER_DIAGNOSTICS SQL 인스턴스에서 구성 요소 진단을 주기적으로 수집합니다. 수집되는 진단 정보는 다음 구성 요소 각각에 대한 행으로 표시되고 호출 스레드에 전달됩니다.

  1. 시스템

  2. 자원

  3. 질의 처리 과정

  4. io_subsystem (I/O 서브시스템)

  5. 이벤트

시스템, 리소스 및 쿼리 프로세스 구성 요소는 오류 검색에 사용됩니다. io_subsytem 및 이벤트 구성 요소는 진단 목적으로만 사용됩니다.

정보의 각 행 집합도 SQL Server 클러스터 진단 로그에 기록됩니다. 자세한 내용은 장애 조치 클러스터 인스턴스 진단 로그를 보기 및 읽기를 참조하세요.

팁 (조언)

sp_server_diagnostic 저장 프로시저는 SQL Server AlwaysOn 기술에서 사용되지만 문제를 감지하고 해결하는 데 도움이 되도록 모든 SQL Server 인스턴스에서 사용할 수 있습니다.

오류 확인

SQL Server 데이터베이스 엔진 리소스 DLL은 감지된 상태가 FailureConditionLevel 속성을 사용하여 실패 조건인지 여부를 판단합니다. FailureConditionLevel 속성은 감지된 상태 중 어떤 상태가 다시 시작 또는 장애 조치(failover)를 유발하는지를 정의합니다. 자동 다시 시작 또는 장애 조치(failover)가 없는 것부터 가능한 모든 오류 조건에 이르기까지 여러 수준의 옵션을 사용할 수 있으며, 이로 인해 자동 다시 시작 또는 장애 조치(failover)가 발생합니다. 이 속성을 구성하는 방법에 대한 자세한 내용은 FailureConditionLevel 속성 설정 구성을 참조하세요.

오류 조건은 증가하는 규모로 설정됩니다. 수준 1-5의 경우 각 수준에는 자체 조건 외에도 이전 수준의 모든 조건이 포함됩니다. 즉, 각 수준에서 장애 조치(failover) 또는 다시 시작할 확률이 증가합니다. 오류 조건 수준은 다음 표에 설명되어 있습니다.

이 시스템 저장 프로시저가 오류 조건 수준에서 중요한 역할을 수행하기 때문에 sp_server_diagnostics(Transact-SQL) 를 검토합니다.

레벨 조건 설명
0 자동 전환 또는 재시작 없음 장애 조치(failover) 또는 다시 시작이 어떠한 오류 조건에서도 자동으로 트리거되지 않음을 나타냅니다. 이 수준은 시스템 유지 관리 용도로만 사용됩니다.
1 서버 다운 시 장애 조치(failover) 또는 다시 시작 다음 조건이 발생하는 경우 서버 다시 시작 또는 장애 조치(failover)가 트리거됨을 나타냅니다.

SQL Server 서비스가 중단되었습니다.
2 응답하지 않는 서버에서 장애 조치 또는 재시작 다음 조건이 발생하는 경우 서버 다시 시작 또는 장애 조치(failover)가 트리거됨을 나타냅니다.

SQL Server 서비스가 중단되었습니다.

SQL Server 인스턴스가 응답하지 않습니다(Resource DLL은 HealthCheckTimeout 설정 내의 sp_server_diagnostics 데이터를 받을 수 없음).
3* 중요한 서버 오류 시 장애 조치 혹은 재시작 다음 조건이 발생하는 경우 서버 다시 시작 또는 장애 조치(failover)가 트리거됨을 나타냅니다.

SQL Server 서비스가 중단되었습니다.

SQL Server 인스턴스가 응답하지 않습니다(Resource DLL은 HealthCheckTimeout 설정 내의 sp_server_diagnostics 데이터를 받을 수 없음).

시스템 저장 프로시저 sp_server_diagnostics '시스템 오류'를 반환합니다.
4 중간 정도 서버 오류 시 장애 조치 또는 재시작 다음 조건이 발생하는 경우 서버 다시 시작 또는 장애 조치(failover)가 트리거됨을 나타냅니다.

SQL Server 서비스가 중단되었습니다.

SQL Server 인스턴스가 응답하지 않습니다(Resource DLL은 HealthCheckTimeout 설정 내의 sp_server_diagnostics 데이터를 받을 수 없음).

시스템 저장 프로시저 sp_server_diagnostics '시스템 오류'를 반환합니다.

시스템 저장 프로시저 sp_server_diagnostics '리소스 오류'를 반환합니다.
5 인증된 오류 조건에서 장애를 해결하기 위한 조치 또는 다시 시작 다음 조건이 발생하는 경우 서버 다시 시작 또는 장애 조치(failover)가 트리거됨을 나타냅니다.

SQL Server 서비스가 중단되었습니다.

SQL Server 인스턴스가 응답하지 않습니다(Resource DLL은 HealthCheckTimeout 설정 내의 sp_server_diagnostics 데이터를 받을 수 없음).

시스템 저장 프로시저 sp_server_diagnostics '시스템 오류'를 반환합니다.

시스템 저장 프로시저 sp_server_diagnostics '리소스 오류'를 반환합니다.

시스템 저장 프로시저 sp_server_diagnostics는 '쿼리 처리 오류'를 반환합니다.

*기본값

오류에 응답

하나 이상의 오류 조건이 검색되면 WSFC 서비스가 오류에 응답하는 방법은 WSFC 쿼럼 상태와 FCI 리소스 그룹의 다시 시작 및 장애 조치(failover) 설정에 따라 달라집니다. FCI가 WSFC 쿼럼을 분실한 경우 전체 FCI가 오프라인 상태가 되며 FCI가 고가용성을 잃었습니다. FCI가 여전히 WSFC 쿼럼을 유지하는 경우 WSFC 서비스는 먼저 실패한 노드를 다시 시작한 다음 다시 시작 시도가 실패하면 장애 조치(failover)를 시도하여 응답할 수 있습니다. 다시 시작 및 장애 조치(failover) 설정은 장애 조치(failover) 클러스터 관리자 스냅인에서 구성됩니다. 이러한 설정에 대한 자세한 내용은 리소스> 속성: 정책 탭을 참조<하세요.

쿼럼 상태를 유지하는 방법에 대한 자세한 내용은 WSFC 쿼럼 모드 및 투표 구성(SQL Server)을 참조하세요.

또한 참조하십시오

ALTER SERVER CONFIGURATION(Transact-SQL)