가용성 그룹의 계획된 수동 장애 조치(Failover) 수행(SQL Server)Perform a planned manual failover of an availability group (SQL Server)

이 항목 적용 대상: 예SQL Server없습니다Azure SQL 데이터베이스없습니다Azure SQL 데이터 웨어하우스 없습니다 병렬 데이터 웨어하우스THIS TOPIC APPLIES TO: yesSQL ServernoAzure SQL DatabasenoAzure SQL Data Warehouse noParallel Data Warehouse 이 항목에서는 SQL Server 2017SQL Server 2017에서 SQL Server Management StudioSQL Server Management Studio, Transact-SQLTransact-SQL 또는 PowerShell을 사용하여 AlwaysOn 가용성 그룹에서 데이터 손실 없이 수동 장애 조치(Failover)를 수행하는 방법(계획된 수동 장애 조치(Failover))에 대해 설명합니다. This topic describes how to perform a manual failover without data loss (a planned manual failover) on an AlwaysOn availability group by using SQL Server Management StudioSQL Server Management Studio, Transact-SQLTransact-SQL, or PowerShell in SQL Server 2017SQL Server 2017. 가용성 그룹은 가용성 복제본의 수준에서 장애 조치(Failover)됩니다.An availability group fails over at the level of an availability replica. AlwaysOn 가용성 그룹 장애 조치(Failover)처럼 계획된 수동 장애 조치는 보조 복제본을 기본 역할로 전환합니다.A planned manual failover, like any AlwaysOn availability group failover, transitions a secondary replica to primary role. 동시에 장애 조치(Failover)는 이전 주 복제본을 보조 역할로 전환합니다.Concurrently, the failover transitions the former primary replica to the secondary role.

계획된 수동 장애 조치(Failover)는 주 복제본과 대상 보조 복제본이 동기 커밋 모드에서 실행 중이고 현재 동기화된 경우에만 지원됩니다.A planned manual failover is supported only when the primary replica and the target secondary replica are running in synchronous-commit mode and are currently synchronized. 계획된 수동 장애 조치(Failover)는 대상 보조 복제본의 가용성 그룹에 조인된 보조 데이터베이스의 모든 데이터를 유지합니다.A planned manual failver preserves all the data in the secondary databases that are joined to the availability group on the target secondary replica. 이전 주 복제본이 보조 역할로 전환되면 해당 데이터베이스는 보조 데이터베이스가 됩니다.After the former primary replica transitions to the secondary role, its databases become secondary databases. 그런 다음 새 기본 데이터베이스와 동기화되기 시작합니다.Then they begin to synchronize with the new primary databases. 데이터베이스가 모두 SYNCHRONIZED 상태로 전환된 후 새로운 보조 복제본은 향후 계획 수동 장애 조치(failover)의 대상 역할을 수행할 수 있습니다.After they all transition into the SYNCHRONIZED state, the new secondary replica becomes eligible to serve as the target of a future planned manual failover.

참고

보조 복제본과 주 복제본이 모두 자동 장애 조치(Failover) 모드에 대해 구성된 경우 보조 복제본이 동기화되면 자동 장애 조치(Failover)의 대상 역할도 수행할 수 있습니다.If the secondary and primary replicas are both configured for automatic failover mode, after the secondary replica is synchronized, it also can serve as the target for an automatic failover. 자세한 내용은 가용성 모드(AlwaysOn 가용성 그룹)를 참조하세요.For more information, see Availability modes (AlwaysOn availability groups).

시작하기 전 주의 사항Before you begin

중요

클러스터 관리자가 없는 읽기 확장 가용성 그룹을 장애 조치하는 특정 절차가 있습니다.There are specific procedures to fail over a read-scale availability group with no cluster manager. 가용성 그룹에 CLUSTER_TYPE = NONE이 있는 경우 읽기 확장 가용성 그룹에서 주 복제본 장애 조치 아래의 절차를 따르세요.When an availability group has CLUSTER_TYPE = NONE, follow the procedures under Fail over the primary replica on a read-scale availability group.

제한 사항Limitations and restrictions

필수 조건 및 제한 사항Prerequisites and restrictions

  • 대상 보조 복제본과 주 복제본이 모두 동기-커밋 가용성 모드에서 실행 중이어야 합니다.Both the target secondary replica and the primary replica must be running in synchronous-commit availability mode.
  • 현재 대상 보조 복제본이 주 복제본과 동기화되어 있어야 합니다.Currently, the target secondary replica must be synchronized with the primary replica. 이 보조 복제본의 모든 보조 데이터베이스는 이미 가용성 그룹에 조인되어 있어야 합니다.All the secondary databases on this secondary replica must be joined to the availability group. 또한 해당 주 데이터베이스와 동기화되어야 합니다(즉, 로컬 보조 데이터베이스가 동기화되어야 함).They also must be synchronized with their corresponding primary databases (that is, the local secondary databases must be SYNCHRONIZED).

    보조 복제본의 장애 조치(Failover) 준비를 확인하려면 sys.dm_hadr_database_cluster_states 동적 관리 뷰에서 is_Failover_ready 열을 쿼리합니다.To determine the failover readiness of a secondary replica, query the is_failover_ready column in the sys.dm_hadr_database_cluster_states dynamic management view. 또는 AlwaysOn 그룹 대시 보드장애 조치(Failover) 준비 열을 볼 수 있습니다.Or you can look at the Failover Readiness column of the AlwaysOn group dashboard.

  • 이 태스크는 대상 보조 복제본에서만 지원됩니다.This task is supported only on the target secondary replica. 대상 보조 복제본을 호스팅하는 서버 인스턴스에 연결되어 있어야 합니다.You must be connected to the server instance that hosts the target secondary replica.

보안Security

사용 권한Permissions

가용성 그룹에서는 ALTER AVAILABILITY GROUP 권한이 필요합니다.The ALTER AVAILABILITY GROUP permission is required on the availability group. CONTROL AVAILABILITY GROUP 권한, ALTER ANY AVAILABILITY GROUP 권한 또는 CONTROL SERVER 권한도 필요합니다.The CONTROL AVAILABILITY GROUP permission, the ALTER ANY AVAILABILITY GROUP permission, or the CONTROL SERVER permission also is required.

SQL Server Management Studio 사용Use SQL Server Management Studio

가용성 그룹을 수동으로 장애 조치하려면To manually fail over an availability group:

  1. 개체 탐색기에서 장애 조치해야 할 가용성 그룹의 보조 복제본을 호스팅하는 서버 인스턴스에 연결합니다.In Object Explorer, connect to a server instance that hosts a secondary replica of the availability group that needs to be failed over. 서버 트리를 확장합니다.Expand the server tree.

  2. AlwaysOn 고가용성가용성 그룹 노드를 확장합니다.Expand the AlwaysOn High Availability node and the Availability Groups node.

  3. 장애 조치할 가용성 그룹을 마우스 오른쪽 단추로 클릭하고 장애 조치(Failover)를 선택합니다.Right-click the availability group to be failed over, and select Failover.

  4. 가용성 그룹 장애 조치 마법사가 시작됩니다.The Failover Availability Group wizard starts. 자세한 내용은 가용성 그룹 장애 조치(Failover) 마법사 사용(SQL Server Management Studio)을 참조하세요.For more information, see Use the Failover Availability Group wizard (SQL Server Management Studio).

Transact-SQL 사용Use Transact-SQL

가용성 그룹을 수동으로 장애 조치하려면To manually fail over an availability group:

  1. 대상 보조 복제본을 호스팅하는 서버 인스턴스에 연결합니다.Connect to the server instance that hosts the target secondary replica.

  2. 다음과 같은 ALTER AVAILABILITY GROUP 문을 사용합니다.Use the ALTER AVAILABILITY GROUP statement, as follows:

    ALTER AVAILABILITY GROUP group_name FAILOVERALTER AVAILABILITY GROUP group_name FAILOVER

    명령문에서 group_name은 가용성 그룹의 이름입니다.In the statement, group_name is the name of the availability group.

    다음 예에서는 MyAg 가용성 그룹을 연결된 보조 복제본으로 수동으로 장애 조치합니다.The following example manually fails over the MyAg availability group to the connected secondary replica:

    ALTER AVAILABILITY GROUP MyAg FAILOVER;  
    

PowerShell 사용Use PowerShell

가용성 그룹을 수동으로 장애 조치하려면To manually fail over an availability group:

  1. 대상 보조 복제본을 호스트하는 서버 인스턴스로 디렉터리(cd)를 변경합니다.Change the directory (cd) to the server instance that hosts the target secondary replica.

  2. Switch-SqlAvailabilityGroup cmdlet을 사용합니다.Use the Switch-SqlAvailabilityGroup cmdlet.

    참고

    cmdlet의 구문을 보려면 PowerShell 환경에서 Get-Help SQL Server 2017SQL Server 2017 cmdlet을 사용합니다.To view the syntax of a cmdlet, use the Get-Help cmdlet in the SQL Server 2017SQL Server 2017 PowerShell environment. 자세한 내용은 SQL Server PowerShell에 대한 도움말 보기를 참조하세요.For more information, see Get help for SQL Server PowerShell.

    다음 예에서는 지정한 경로를 사용하여 MyAg 가용성 그룹을 보조 복제본으로 수동으로 장애 조치합니다.The following example manually fails over the MyAg availability group to the secondary replica with the specified path:

    Switch-SqlAvailabilityGroup -Path SQLSERVER:\Sql\SecondaryServer\InstanceName\AvailabilityGroups\MyAg  
    

    SQL Server PowerShell 공급자를 설정하고 사용하려면To set up and use the SQL Server PowerShell provider:

후속 작업: 가용성 그룹을 수동으로 장애 조치한 후Follow up: After you manually fail over an availability group

가용성 그룹의 자동 장애 조치(Failover) 설정automatic failover set 외부로 장애 조치한 경우 새로운 가용성 그룹 구성을 반영하도록 Windows Server 장애 조치(Failover) 클러스터링 노드의 쿼럼 투표를 조정합니다.If you failed over outside the 자동 장애 조치(Failover) 설정automatic failover set of the availability group, adjust the quorum votes of the Windows Server failover clustering nodes to reflect your new availability group configuration. 자세한 내용은 SQL Server의 WSFC(Windows Server 장애 조치(Failover) 클러스터링)을 참조하세요.For more information, see Windows Server failover clustering (WSFC) with SQL Server.

읽기 확장 가용성 그룹에서 주 복제본 장애 조치Fail over the primary replica on a read-scale availability group

각 가용성 그룹에는 하나의 주 복제본만 있습니다.Each availability group has only one primary replica. 주 복제본은 읽기 및 쓰기를 허용합니다.The primary replica allows reads and writes. 복제본은 주를 변경 하려면 조치할 수 있습니다.To change which replica is primary, you can fail over. 고가용성을 위한 가용성 그룹에서 클러스터 관리자는 장애 조치 프로세스를 자동화합니다.In an availability group for high availability, the cluster manager automates the failover process. 읽기 확장 가용성 그룹에서는 장애 조치 프로세스가 수동입니다.In a read-scale availability group, the failover process is manual.

두 가지 방법으로 읽기 확장성이 가용성 그룹에서 주 복제본 장애 조치할 수 있습니다.There are two ways to fail over the primary replica in a read-scale availability group:

  • 데이터 손실 강제 수동 장애 조치Forced manual failover with data loss
  • 데이터 손실 없이 수동 장애 조치Manual failover without data loss

데이터 손실 강제 수동 장애 조치Forced manual failover with data loss

주 복제본 사용할 수 없고 복구할 수 없는 경우이 메서드를 사용 합니다.Use this method when the primary replica isn't available and can't be recovered.

데이터 손실 될 수 있는 장애 조치를 강제로 표시 하려면 대상 보조 복제본과 실행을 호스팅하는 SQL Server 인스턴스에 연결:To force failover with data loss, connect to the SQL Server instance that hosts the target secondary replica and run:

ALTER AVAILABILITY GROUP [ag1] FORCE_FAILOVER_ALLOW_DATA_LOSS;

데이터 손실 없이 수동 장애 조치Manual failover without data loss

주 복제본을 사용할 수 있지만 이 구성을 일시적 또는 영구적으로 변경하고 주 복제본을 호스팅하는 SQL Server 인스턴스를 변경해야 하는 경우 이 방법을 사용합니다.Use this method when the primary replica is available, but you need to temporarily or permanently change the configuration and change the SQL Server instance that hosts the primary replica. 수동 장애 조치를 실행 하기 전에 대상 보조 복제본 잠재적 데이터 손실을 방지 하기 위해 최신 상태 인지 확인 합니다.Before you issue the manual failover, ensure that the target secondary replica is up to date to avoid potential data loss.

수동으로 장애 조치 데이터 손실 없이:To manually fail over without data loss:

  1. 대상 보조 복제본을 확인 SYNCHRONOUS_COMMIT합니다.Make the target secondary replica SYNCHRONOUS_COMMIT.

    ALTER AVAILABILITY GROUP [ag1] 
         MODIFY REPLICA ON N'**<node2>*' 
         WITH (AVAILABILITY_MODE = SYNCHRONOUS_COMMIT);
    
  2. 활성 트랜잭션이 주 복제본과 동기 보조 복제본이 하나 이상에 커밋됩니다 식별 하려면 다음 쿼리를 실행 합니다.Run the following query to identify that active transactions are committed to the primary replica and at least one synchronous secondary replica:

    SELECT ag.name, 
       drs.database_id, 
       drs.group_id, 
       drs.replica_id, 
       drs.synchronization_state_desc, 
       ag.sequence_number
    FROM sys.dm_hadr_database_replica_states drs, sys.availability_groups ag
    WHERE drs.group_id = ag.group_id; 
    

    보조 복제본이 synchronization_state_descSYNCHRONIZED일 때 동기화됩니다.The secondary replica is synchronized when synchronization_state_desc is SYNCHRONIZED.

  3. 업데이트 REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT 1입니다.Update REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT to 1.

    다음 스크립트 집합 REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT 라는 가용성 그룹에 1로 ag1합니다.The following script sets REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT to 1 on an availability group named ag1. 다음 스크립트를 실행 하기 전에 대체 ag1 가용성 그룹의 이름으로:Before you run the following script, replace ag1 with the name of your availability group:

    ALTER AVAILABILITY GROUP [ag1] 
         SET REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT = 1;
    

    이 설정은 모든 활성 트랜잭션이 커밋 주 복제본과 동기 보조 복제본이 하나 이상에 되는지 확인 합니다.This setting ensures that every active transaction is committed to the primary replica and at least one synchronous secondary replica.

  4. 주 복제본을 보조 복제본의 수준을 내립니다.Demote the primary replica to a secondary replica. 주 복제본 강등 된 읽기 전용입니다.After the primary replica is demoted, it's read-only. 이 명령을 실행 하는 역할을 업데이트 하려면 주 복제본을 호스팅하는 SQL Server 인스턴스에서 SECONDARY:Run this command on the SQL Server instance that hosts the primary replica to update the role to SECONDARY:

    ALTER AVAILABILITY GROUP [ag1] 
         SET (ROLE = SECONDARY); 
    
  5. 대상 보조 복제본을 주 복제본으로 승격합니다.Promote the target secondary replica to primary.

    ALTER AVAILABILITY GROUP ag1 FORCE_FAILOVER_ALLOW_DATA_LOSS; 
    

    참고

    가용성 그룹을 삭제 하려면 사용 DROP AVAILABILITY GROUP합니다.To delete an availability group, use DROP AVAILABILITY GROUP. CLUSTER_TYPE 없음 또는 외부를 사용 하 여 만든 가용성 그룹에 대 한이 명령은 가용성 그룹의 일부가 되는 모든 복제본에서 실행 되어야 합니다.For an availability group created with CLUSTER_TYPE NONE or EXTERNAL, the command must be executed on all replicas that are part of the availability group.

참고 항목See also