장애 조치(failover) 클러스터 인스턴스용 장애 조치(failover) 정책Failover Policy for Failover Cluster Instances

SQL ServerSQL Server 장애 조치(failover) 클러스터 인스턴스(FCI)에서는 한 번에 하나의 노드에서만 WSFC(Windows Server Failover Cluster) 클러스터 리소스 그룹을 소유할 수 있습니다.In a SQL ServerSQL Server failover cluster instance (FCI), only one node can own the Windows Server Failover Cluster (WSFC) cluster resource group at a given time. 클라이언트 요청은 FCI에서 이 노드를 통해 제공됩니다.The client requests are served through this node in the FCI. 오류가 발생하여 다시 시작이 실패하면 그룹 소유권이 FCI의 다른 WSFC 노드로 이동합니다.In the case of a failure and an unsuccessful restart, the group ownership is moved to another WSFC node in the FCI. 이 프로세스를 장애 조치(Failover)라고 합니다.This process is called failover. SQL Server 2017SQL Server 2017 는 오류 검색의 안정성이 향상되었고 유연한 장애 조치(failover) 정책을 제공합니다. increases the reliability of failure detection and provides a flexible failover policy.

SQL ServerSQL Server FCI는 장애 조치(failover) 탐지에 대한 기본 WSFC 서비스에 따라 달라집니다.A SQL ServerSQL Server FCI depends on the underlying WSFC service for failover detection. 따라서 기본 WSFC 기능과 SQL ServerSQL Server 설치 프로그램에서 추가한 기능의 두 가지 메커니즘을 통해 장애 조치(failover) 동작이 결정됩니다.Therefore, two mechanisms determine the failover behavior for FCI: the former is native WSFC functionality, and the latter is functionality added by SQL ServerSQL Server setup.

  • WSFC 클러스터는 자동 장애 조치(failover)에서 고유한 장애 조치(failover) 대상을 보장하는 쿼럼 구성을 유지 관리합니다.The WSFC cluster maintains the quorum configuration, which ensures a unique failover target in an automatic failover. WSFC 서비스는 클러스터가 최적의 쿼럼 상태인지 여부를 항상 확인하여 이에 따라 리소스 그룹을 온라인 및 오프라인 상태로 만듭니다.The WSFC service determines whether the cluster is in optimal quorum health at all times and brings the resource group online and offline accordingly.

  • 활성 SQL ServerSQL Server 인스턴스는 전용 연결을 통해 WSFC 리소스 그룹에 대한 구성 요소 진단 집합을 주기적으로 보고합니다.The active SQL ServerSQL Server instance periodically reports a set of component diagnostics to the WSFC resource group over a dedicated connection. WSFC 리소스 그룹은 다시 시작 및 장애 조치(failover)를 트리거하는 오류 상태를 정의한 장애 조치(failover) 정책을 유지 관리합니다.The WSFC resource group maintains the failover policy, which defines the failure conditions that trigger restarts and failovers.

    이 항목에서는 위의 두 번째 메커니즘에 대해 설명합니다.This topic discusses the second mechanism above. 쿼럼 구성 및 상태 감지에 대한 WSFC 동작의 자세한 내용은 WSFC 쿼럼 모드 및 투표 구성(SQL Server)을 참조하세요.For more information on the WSFC behavior for quorum configuration and health detection, see WSFC Quorum Modes and Voting Configuration (SQL Server).

중요

FCI로 또는 FCI로부터의 자동 장애 조치(failover)는 Always On 가용성 그룹에서 허용되지 않습니다.Automatic failovers to and from an FCI are not allowed in an Always On availability group. 그러나 FCI로 또는 FCI로부터의 수동 장애 조치(failover)는 Always On 가용성 그룹에서 허용됩니다.However, manual failovers to and from and FCI are allowed in an Always On availability group.

장애 조치(failover) 정책 개요 Failover Policy Overview

장애 조치(failover) 프로세스는 다음 단계로 세분화될 수 있습니다.The failover process can be broken down into the following steps:

  1. 상태 모니터링Monitor the Health Status

  2. 실패 확정Determining Failures

  3. 실패에 대한 응답Responding to Failures

상태 모니터링 Monitor the Health Status

모니터링되는 FCI 상태에는 다음의 세 가지 유형이 있습니다.There are three types of health statuses that are monitored for the FCI:

SQL Server 서비스의 상태 State of the SQL Server service

WSFC 서비스는 활성 FCI 노드에 대한 SQL Server 서비스의 시작 상태를 모니터링하여 SQL Server 서비스가 중지된 시간을 감지합니다.The WSFC service monitors the start state of the SQL Server service on the active FCI node to detect when the SQL Server service is stopped.

SQL Server 인스턴스의 응답 Responsiveness of the SQL Server instance

SQL Server를 시작하는 동안 WSFC 서비스는 SQL Server 데이터베이스 엔진 리소스 DLL을 사용하여, 상태 모니터링을 위해 배타적으로 사용되는 별도의 스레드로 새 연결을 만듭니다.During SQL Server startup, the WSFC service uses the SQL Server Database Engine resource DLL to create a new connection to on a separate thread that is used exclusively for monitoring the health status. 이렇게 하면 로드가 있는 상황에서 SQL 인스턴스가 자신의 상태를 보고하는 데 필요한 리소스를 가지고 있도록 보장됩니다.This ensures that there the SQL instance has the required resources to report its health status while under load. 이 전용 연결을 통해 SQL Server는 sp_server_diagnostics(Transact-SQL) 시스템 저장 프로시저를 반복적으로 실행하여 리소스 DLL에 대한 SQL Server 구성 요소의 상태를 주기적으로 보고합니다.Using this dedicated connection, SQL Server runs the sp_server_diagnostics (Transact-SQL) system stored procedure in repeat mode to periodically report the health status of the SQL Server components to the resource DLL.

리소스 DLL은 상태 확인 제한 시간을 사용하여 SQL 인스턴스의 응답을 확인합니다.The resource DLL determines the responsiveness of the SQL instance using a health check timeout. HealthCheckTimeout 속성은 리소스 DLL이 SQL 인스턴스가 WSFC Server 서비스에 응답하지 않는 것으로 보고하기 전에 sp_server_diagnostics 저장 프로시저를 대기해야 하는 시간을 정의합니다.The HealthCheckTimeout property defines how long the resource DLL should wait for the sp_server_diagnostics stored procedure before it reports the SQL instance as unresponsive to the WSFC service. 이 속성은 장애 조치(failover) 클러스터 관리자 스냅인뿐만 아니라 T-SQL을 사용하여 구성할 수 있습니다.This property is configurable using T-SQL as well as in the Failover Cluster Manager snap-in. 자세한 내용은 Configure HealthCheckTimeout Property Settings을 참조하세요.For more information, see Configure HealthCheckTimeout Property Settings. 다음 항목에서는 이 속성이 제한 시간 및 반복 간격 설정에 어떻게 영향을 주는지에 대해 설명합니다.The following items describe how this property affects timeout and repeat interval settings:

  • 리소스 DLL은 sp_server_diagnostics 저장 프로시저를 호출하고 반복 간격을 HealthCheckTimeout 설정의 1/3로 설정합니다.The resource DLL calls the sp_server_diagnostics stored procedure and sets the repeat interval to one-third of the HealthCheckTimeout setting.

  • sp_server_diagnostics 저장 프로시저가 느리거나 정보를 반환하지 않는 경우 리소스 DLL은 SQL 인스턴스가 응답하지 않는 것으로 WSFC 서비스에 보고하기 전에 HealthCheckTimeout에서 지정된 간격 동안 대기합니다.If the sp_server_diagnostics stored procedure is slow or is not returning information, the resource DLL will wait for the interval specified by HealthCheckTimeout before it reports to the WSFC service that the SQL instance is unresponsive.

  • 전용 연결이 손실된 경우 리소스 DLL은 SQL 인스턴스가 응답하지 않는 것으로 WSFC 서비스에 보고하기 전에 HealthCheckTimeout에서 지정된 간격 동안 SQL 인스턴스에 연결을 다시 시도합니다.If the dedicated connection is lost, the resource DLL will retry the connection to the SQL instance for the interval specified by HealthCheckTimeout before it reports to the WSFC service that the SQL instance is unresponsive.

SQL Server 구성 요소 진단 SQL Server component diagnostics

sp_server_diagnostics 시스템 저장 프로시저는 SQL 인스턴스에 대한 구성 요소 진단을 주기적으로 수집합니다.The system stored procedure sp_server_diagnostics periodically collects component diagnostics on the SQL instance. 수집된 진단 정보는 다음 각 구성 요소의 행으로 표시되고 호출 스레드에 전달됩니다.The diagnostic information that is collected is surfaced as a row for each of the following components and passed to the calling thread.

  1. 시스템system

  2. resourceresource

  3. 쿼리 프로세스query process

  4. io_subsystemio_subsystem

  5. 이벤트events

    시스템, 리소스 및 쿼리 프로세스 구성 요소는 실패 감지에 사용됩니다.The system, resource, and query process components are used for failure detection. IO 하위 시스템 및 이벤트 구성 요소는 진단용으로만 사용됩니다.The io_subsytem and events components are used for diagnostic purposes only.

    또한 정보의 각 행 집합이 SQL Server 클러스터 진단 로그에 기록됩니다.Each rowset of information is also written to the SQL Server cluster diagnostics log. 자세한 내용은 장애 조치(failover) 클러스터 인스턴스 진단 로그 보기 및 읽기를 참조하세요.For more information, see View and Read Failover Cluster Instance Diagnostics Log.

sp_server_diagnostic 저장 프로시저는 SQL Server Always On 기술에서 사용되는 동안 문제를 감지하고 해결하는 데 도움이 되도록 SQL Server 인스턴스에서 사용이 가능합니다.While the sp_server_diagnostic stored procedure is used by SQL Server Always On technology, it is available for use in any SQL Server instance to help detect and troubleshoot problems.

실패 확정 Determining Failures

SQL Server 데이터베이스 엔진 리소스 DLL은 FailureConditionLevel 속성을 사용하여 감지된 상태가 오류 상태인지 여부를 결정합니다.The SQL Server Database Engine resource DLL determines whether the detected health status is a condition for failure using the FailureConditionLevel property. FailureConditionLevel 속성은 감지된 상태 중에서 다시 시작 또는 장애 조치(failover)의 원인이 된 상태를 결정합니다.The FailureConditionLevel property defines which detected health statuses cause restarts or failovers. 자동 다시 시작 또는 장애 조치(failover) 사용 안 함에서부터 자동 다시 시작 또는 장애 조치(failover)를 초래하는 모든 오류 상태에 이르기까지 다양한 수준의 옵션을 사용할 수 있습니다.Multiple levels of options are available, ranging from no automatic restart or failover to all possible failure conditions resulting in an automatic restart or failover. 이 속성을 구성하는 방법은 Configure FailureConditionLevel Property Settings을 참조하십시오.For more information about how to configure this property, see Configure FailureConditionLevel Property Settings.

실패 조건은 증가하는 범위로 설정됩니다.The failure conditions are set on an increasing scale. 수준 1-5의 경우 각 수준에는 자체 조건과 함께 이전 수준의 모든 조건이 포함됩니다.For levels 1-5, each level includes all the conditions from the previous levels in addition to its own conditions. 이는 수준이 높을수록 장애 조치(Failover) 또는 다시 시작 확률이 증가함을 의미합니다.This means that with each level, there is an increased probability of a failover or restart. 다음 표에서는 실패 조건 수준에 대해 설명합니다.The failure condition levels are described in the following table.

이 시스템 저장 프로시저는 오류 상태 수준에서 중요한 역할을 하므로 sp_server_diagnostics(Transact-SQL)를 검토하세요.Review sp_server_diagnostics (Transact-SQL) as this system stored procedure plays in important role in the failure condition levels.

LevelLevel 조건Condition 설명Description
00 자동 장애 조치(Failover) 또는 다시 시작 안 함No automatic failover or restart 어떤 실패 조건에서도 장애 조치(Failover) 또는 다시 시작이 자동으로 트리거되지 않음을 나타냅니다.Indicates that no failover or restart will be triggered automatically on any failure conditions. 이 수준은 시스템 유지 관리 목적으로만 제공됩니다.This level is for system maintenance purposes only.
11 서버 다운 시 장애 조치(Failover) 또는 다시 시작Failover or restart on server down 다음 조건이 발생한 경우 서버가 다시 시작되거나 장애 조치(Failover)됨을 나타냅니다.Indicates that a server restart or failover will be triggered if the following condition is raised:

SQL Server 서비스가 다운된 경우SQL Server service is down.
22 서버가 응답하지 않는 경우 장애 조치(Failover) 또는 다시 시작Failover or restart on server unresponsive 다음 조건 중 하나가 발생한 경우 서버가 다시 시작되거나 장애 조치(Failover)됨을 나타냅니다.Indicates that a server restart or failover will be triggered if any of the following conditions are raised:

SQL Server 서비스가 다운된 경우SQL Server service is down.

SQL 서버 인스턴스가 응답하지 않을 경우(리소스 DLL이 HealthCheckTimeout 설정의 sp_server_diagnostics에서 데이터를 받을 수 없음)SQL Server instance is not responsive (Resource DLL cannot receive data from sp_server_diagnostics within the HealthCheckTimeout settings).
33 심각한 서버 오류 시 장애 조치(Failover) 또는 다시 시작Failover or restart on critical server errors 다음 조건 중 하나가 발생한 경우 서버가 다시 시작되거나 장애 조치(Failover)됨을 나타냅니다.Indicates that a server restart or failover will be triggered if any of the following conditions are raised:

SQL Server 서비스가 다운된 경우SQL Server service is down.

SQL 서버 인스턴스가 응답하지 않을 경우(리소스 DLL이 HealthCheckTimeout 설정의 sp_server_diagnostics에서 데이터를 받을 수 없음)SQL Server instance is not responsive (Resource DLL cannot receive data from sp_server_diagnostics within the HealthCheckTimeout settings).

시스템 저장 프로시저 sp_server_diagnostics가 '시스템 오류'를 반환할 경우System stored procedure sp_server_diagnostics returns ‘system error’.
44 일반적인 서버 오류 시 장애 조치(Failover) 또는 다시 시작Failover or restart on moderate server errors 다음 조건 중 하나가 발생한 경우 서버가 다시 시작되거나 장애 조치(Failover)됨을 나타냅니다.Indicates that a server restart or failover will be triggered if any of the following conditions are raised:

SQL Server 서비스가 다운된 경우SQL Server service is down.

SQL 서버 인스턴스가 응답하지 않을 경우(리소스 DLL이 HealthCheckTimeout 설정의 sp_server_diagnostics에서 데이터를 받을 수 없음)SQL Server instance is not responsive (Resource DLL cannot receive data from sp_server_diagnostics within the HealthCheckTimeout settings).

시스템 저장 프로시저 sp_server_diagnostics가 '시스템 오류'를 반환할 경우System stored procedure sp_server_diagnostics returns ‘system error’.

시스템 저장 프로시저 sp_server_diagnostics가 '리소스 오류'를 반환할 경우System stored procedure sp_server_diagnostics returns ‘resource error’.
55 임의의 실패 조건 발생 시 장애 조치(Failover) 또는 다시 시작Failover or restart on any qualified failure conditions 다음 조건 중 하나가 발생한 경우 서버가 다시 시작되거나 장애 조치(Failover)됨을 나타냅니다.Indicates that a server restart or failover will be triggered if any of the following conditions are raised:

SQL Server 서비스가 다운된 경우SQL Server service is down.

SQL 서버 인스턴스가 응답하지 않을 경우(리소스 DLL이 HealthCheckTimeout 설정의 sp_server_diagnostics에서 데이터를 받을 수 없음)SQL Server instance is not responsive (Resource DLL cannot receive data from sp_server_diagnostics within the HealthCheckTimeout settings).

시스템 저장 프로시저 sp_server_diagnostics가 '시스템 오류'를 반환할 경우System stored procedure sp_server_diagnostics returns ‘system error’.

시스템 저장 프로시저 sp_server_diagnostics가 '리소스 오류'를 반환할 경우System stored procedure sp_server_diagnostics returns ‘resource error’.

시스템 저장 프로시저 sp_server_diagnostics가 'query_processing 오류'를 반환할 경우System stored procedure sp_server_diagnostics returns ‘query_processing error’.

기본값Default Value

실패에 대한 응답 Responding to Failures

하나 이상의 오류 상태가 감지된 경우 WSFC 서비스의 오류 대응 방법은 FCI 리소스 그룹의 다시 시작 및 장애 조치(failover) 설정과 WSFC 쿼럼 상태에 따라 다릅니다.After one or more failure conditions are detected, how the WSFC service responds to the failures depends on the WSFC quorum state and the restart and failover settings of the FCI resource group. FCI에 손실된 WSFC 쿼럼이 있으면 전체 FCI가 오프라인 상태가 되고 해당 FCI의 고가용성이 손실됩니다.If the FCI has lost its WSFC quorum, then the entire FCI is brought offline and the FCI has lost its high availability. 이 FCI가 계속 WSFC 쿼럼을 유지하면 WSFC 서비스는 실패한 노드의 다시 시작을 처음 시도하여 대응하고 다시 시작 시도가 실패할 경우 장애 조치(failover)할 수도 있습니다.If the FCI still retains its WSFC quorum, then the WSFC service may respond by first attempting to restart the failed node and then failover if the restart attempts are unsuccessful. 다시 시작 및 장애 조치(failover) 설정은 장애 조치(failover) 클러스터 관리자 스냅인에서 구성됩니다.The restart and failover settings are configured in the Failover Cluster Manager snap-in. 이러한 설정에 대한 자세한 내용은 <리소스> 속성: 정책 탭을 참조하세요.For more information these settings, see <Resource> Properties: Policies Tab.

쿼럼 상태의 유지 관리에 대한 자세한 내용은 WSFC 쿼럼 모드 및 투표 구성(SQL Server)을 참조하세요.For more information on maintaining quorum health, see WSFC Quorum Modes and Voting Configuration (SQL Server).

관련 항목:See Also

ALTER SERVER CONFIGURATION(Transact-SQL)ALTER SERVER CONFIGURATION (Transact-SQL)