Linux에서 SQL Server에 대 한 읽기 확장 가용성 그룹을 구성 합니다.Configure read scale-out availability group for SQL Server on Linux

이 항목은 다음에 적용됩니다. 아니요Windows의 SQL Server예Linux의 SQL Server아니요Azure SQL Database아니요Azure SQL Data Warehouse아니요병렬 데이터 웨어하우스 THIS TOPIC APPLIES TO: noSQL Server on WindowsyesSQL Server on LinuxnoAzure SQL DatabasenoAzure SQL Data WarehousenoParallel Data Warehouse

Linux에서 SQL Server에 대 한 읽기 확장 가용성 그룹을 구성할 수 있습니다.You can configure a read scale-out availability group for SQL Server on Linux. 가용성 그룹에 대 한 두 아키텍처 가지가 있습니다.There are two architectures for availability groups. A 고가용성 아키텍처 클러스터 관리자를 사용 하 여 향상 된 비즈니스 연속성을 제공 합니다.A high availability architecture uses a cluster manager to provide improved business continuity. 이 아키텍처는 읽기 확장 복제본을 포함할 수도 있습니다.This architecture can also include read scale-out replicas. 고가용성 아키텍처를 만들려면 참조 구성 Always On 가용성 그룹 Linux에서 SQL Server에 대 한합니다.To create the high availability architecture, see Configure Always On availability group for SQL Server on Linux.

이 문서를 만드는 방법을 설명는 읽기 확장 클러스터 관리자 없이 가용성 그룹입니다.This document explains how to create a read scale-out availability group without a cluster manager. 이 아키텍처는만 읽기 확장만 제공합니다.This architecture only provides read scale-out only. 고가용성을 제공 하지는 않습니다.It does not provide high availability.

필수 구성 요소Prerequisites

가용성 그룹을 만들려면 먼저 다음을 수행해야 합니다.Before you create the availability group, you need to:

  • 가용성 복제본을 호스트하는 모든 서버가 통신할 수 있도록 환경 설정Set your environment so all servers that will host availability replicas can communicate
  • SQL Server 설치Install SQL Server

참고

Linux에서는 가용성 그룹을 먼저 만들어야만 클러스터에서 관리할 클러스터 리소스로 추가할 수 있습니다.On Linux, you must create an availability group before adding it as a cluster resource to be managed by the cluster. 이 문서에는 가용성 그룹을 만드는 예제가 나옵니다.This document provides an example that creates the availability group. 클러스터를 만들고 가용성 그룹을 클러스터 리소스로 추가하는 배포 관련 지침은 다음 단계에 있는 링크를 참조하세요.For distribution specific instructions to create the cluster and add the availability group as a cluster resource, see the links under Next steps.

  1. 각 호스트의 컴퓨터 이름 업데이트Update the computer name for each host

    각 SQL Server 이름은 다음과 같아야 합니다.Each SQL Server name must be:

    • 15자 이하15 characters or less
    • 네트워크 내에서 고유Unique within the network

    컴퓨터 이름을 설정하려면 /etc/hostname을 편집합니다.To set the computer name, edit /etc/hostname. 다음 스크립트를 사용하면 /etc/hostnamevi로 편집할 수 있습니다.The following script lets you edit /etc/hostname with vi.

    sudo vi /etc/hostname
    
  2. 호스트 파일 구성Configure the hosts file

참고

호스트 이름이 DNS 서버에 해당 IP로 등록된 경우 아래 단계를 수행할 필요가 없습니다.If hostnames are registered with their IP in the DNS server, there is no need to do the steps below. 가용성 그룹 구성에 포함할 모든 노드가 서로 통신할 수 있는지 확인합니다(호스트 이름을 ping하면 해당 IP 주소로 회신해야 함).Validate that all nodes that are going to be part of the availability group configuration can communicate with each other (pinging the hostname should reply with the corresponding IP address). 또 /etc/hosts 파일에 localhost IP 주소 127.0.0.1을 노드의 호스트 이름에 매핑하는 레코드가 포함되어 있지 않아야 합니다.Also, make sure that /etc/hosts file does not contain a record that maps localhost IP address 127.0.0.1 with the hostname of the node.

모든 서버의 호스트 파일에는 가용성 그룹에 참여할 모든 서버의 IP 주소 및 이름이 포함됩니다.The hosts file on every server contains the IP addresses and names of all servers that will participate in the availability group.

다음 명령은 현재 서버의 IP 주소를 반환합니다.The following command returns the IP address of the current server:

sudo ip addr show

/etc/hosts를 업데이트합니다.Update /etc/hosts. 다음 스크립트를 사용하면 /etc/hostsvi로 편집할 수 있습니다.The following script lets you edit /etc/hosts with vi.

sudo vi /etc/hosts

다음 예제에서는 node1, node2node3에 대한 항목이 추가된 node1/etc/hosts를 보여 줍니다.The following example shows /etc/hosts on node1 with additions for node1, node2, and node3. 이 문서에서 node1은 주 복제본을 호스트하는 서버를 나타냅니다.In this document node1 refers to the server hosting the primary replica. node2node3은 보조 복제본을 호스트하는 서버를 나타냅니다.node2, and node3 refer to servers hosting secondary replicas.

127.0.0.1   localhost localhost4 localhost4.localdomain4
::1       localhost localhost6 localhost6.localdomain6
10.128.18.12 node1
10.128.16.77 node2
10.128.15.33 node3

SQL Server 설치Install SQL Server

SQL Server를 설치합니다.Install SQL Server. 다음 링크는 다양한 배포에 대한 SQL Server 설치 지침으로 연결됩니다.The following links point to SQL Server installation instructions for various distributions.

Always On 가용성 그룹을 사용하도록 설정하고 sqlserver 다시 시작Enable Always On availability groups and restart sqlserver

SQL Server 인스턴스를 호스트하는 각 노드에서 Always On 가용성 그룹을 사용하도록 설정한 다음, mssql-server를 다시 시작합니다.Enable Always On availability groups on each node hosting a SQL Server instance, then restart mssql-server. 다음 스크립트를 실행합니다.Run the following script:

sudo /opt/mssql/bin/mssql-conf set hadr.hadrenabled  1
sudo systemctl restart mssql-server

AlwaysOn_health 이벤트 세션을 사용하도록 설정Enable AlwaysOn_health event session

Always On 가용성 그룹 확장 이벤트를 사용하도록 설정하여 가용성 그룹 문제를 해결할 때 근본적인 원인 진단에 도움을 줄 수도 있습니다.You can optionally enable Always On availability groups extended events to help with root-cause diagnosis when you troubleshoot an availability group. SQL Server의 각 인스턴스에서 다음 명령을 실행합니다.Run the following command on each each instance of SQL Server.

ALTER EVENT SESSION  AlwaysOn_health ON SERVER WITH (STARTUP_STATE=ON);
GO

이 XE 세션에 대한 자세한 내용은 Always On Extended Events(Always On 확장 이벤트)를 참조하세요.For more information about this XE session, see Always On Extended Events.

db 미러링 끝점 사용자 만들기Create db mirroring endpoint user

다음 Transact-SQL 스크립트는 dbm_login이라는 로그인과 dbm_user라는 사용자를 만듭니다.The following Transact-SQL script creates a login named dbm_login, and a user named dbm_user. 강력한 암호로 스크립트를 업데이트합니다.Update the script with a strong password. 모든 SQL Server 인스턴스에서 다음 명령을 실행하여 데이터베이스 미러링 끝점 사용자를 만듭니다.Run the following command on all SQL Server instances to create the database mirroring endpoint user.

CREATE LOGIN dbm_login WITH PASSWORD = '**<1Sample_Strong_Password!@#>**';
CREATE USER dbm_user FOR LOGIN dbm_login;

인증서 만들기Create a certificate

Linux의 SQL Server 서비스는 인증서를 사용하여 미러링 끝점 간의 통신을 인증합니다.The SQL Server service on Linux uses certificates to authenticate communication between the mirroring endpoints.

다음 Transact-SQL 스크립트는 마스터 키와 인증서를 만듭니다.The following Transact-SQL script creates a master key and certificate. 그런 다음 인증서를 백업하고 개인 키로 파일을 보호합니다.It then backs the certificate up and secures the file with a private key. 강력한 암호로 스크립트를 업데이트합니다.Update the script with strong passwords. 기본 SQL Server 인스턴스에 연결하고 다음 Transact-SQL을 실행하여 인증서를 만듭니다.Connect to the primary SQL Server instance and run the following Transact-SQL to create the certificate:

CREATE MASTER KEY ENCRYPTION BY PASSWORD = '**<Master_Key_Password>**';
CREATE CERTIFICATE dbm_certificate WITH SUBJECT = 'dbm';
BACKUP CERTIFICATE dbm_certificate
   TO FILE = '/var/opt/mssql/data/dbm_certificate.cer'
   WITH PRIVATE KEY (
           FILE = '/var/opt/mssql/data/dbm_certificate.pvk',
           ENCRYPTION BY PASSWORD = '**<Private_Key_Password>**'
       );

이제 기본 SQL Server 복제본은 /var/opt/mssql/data/dbm_certificate.cer에 인증서, var/opt/mssql/data/dbm_certificate.pvk에 개인 키가 있습니다.At this point your primary SQL Server replica has a certificate at /var/opt/mssql/data/dbm_certificate.cer and a private key at var/opt/mssql/data/dbm_certificate.pvk. 이러한 두 파일을 가용성 복제본을 호스트할 모든 서버의 동일한 위치로 복사합니다.Copy these two files to the same location on all servers that will host availability replicas. mssql 사용자를 사용하거나 mssql 사용자에게 이러한 파일에 액세스할 수 있는 권한을 부여합니다.Use the mssql user or give permission to mssql user to access these files.

예를 들어 원본 서버에서 다음 명령은 파일을 대상 컴퓨터에 복사합니다.For example on the source server, the following command copies the files to the target machine. 값을 복제본을 호스트할 SQL Server 인스턴스의 이름으로 바꿉니다.Replace the values with the names of the SQL Server instances that will host the replicas.

cd /var/opt/mssql/data
scp dbm_certificate.* root@**<node2>**:/var/opt/mssql/data/

각 대상 서버에서 mssql 사용자에게 인증서에 액세스할 수 있는 권한을 부여합니다.On each target server, give permission to mssql user to access the certificate.

cd /var/opt/mssql/data
chown mssql:mssql dbm_certificate.*

보조 서버에서 인증서 만들기Create the certificate on secondary servers

다음 Transact-SQL 스크립트는 기본 SQL Server 복제본에 대해 만든 백업을 사용하여 마스터 키와 인증서를 만듭니다.The following Transact-SQL script creates a master key and certificate from the backup that you created on the primary SQL Server replica. 이 명령은 사용자에게 인증서에 액세스할 권한도 부여합니다.The command also authorizes the user to access the certificate. 강력한 암호로 스크립트를 업데이트합니다.Update the script with strong passwords. 해독 암호는 이전 단계에서 .pvk 파일을 만들 때 사용한 암호와 동일합니다.The decryption password is the same password that you used to create the .pvk file in a previous step. 모든 보조 서버에서 다음 스크립트를 실행하여 인증서를 만듭니다.Run the following script on all secondary servers to create the certificate.

CREATE MASTER KEY ENCRYPTION BY PASSWORD = '**<Master_Key_Password>**';
CREATE CERTIFICATE dbm_certificate   
    AUTHORIZATION dbm_user
    FROM FILE = '/var/opt/mssql/data/dbm_certificate.cer'
    WITH PRIVATE KEY (
    FILE = '/var/opt/mssql/data/dbm_certificate.pvk',
    DECRYPTION BY PASSWORD = '**<Private_Key_Password>**'
            );

모든 복제본에서 데이터베이스 미러링 끝점 만들기Create the database mirroring endpoints on all replicas

데이터베이스 미러링 끝점은 TCP(전송 제어 프로토콜)를 사용하여 데이터베이스 미러링 세션에 참여하거나 가용성 복제본을 호스팅하는 서버 인스턴스 간에 메시지를 보내고 받습니다.Database mirroring endpoints use Transmission Control Protocol (TCP) to send and receive messages between the server instances participating database mirroring sessions or hosting availability replicas. 데이터베이스 미러링 끝점은 고유의 TCP 포트 번호에서 수신합니다.The database mirroring endpoint listens on a unique TCP port number.

다음 Transact-SQL은 가용성 그룹에 대해 수신하는 끝점 Hadr_endpoint를 만듭니다.The following Transact-SQL creates a listening endpoint named Hadr_endpoint for the availability group. 이 스크립트는 끝점을 시작하고 만든 사용자에게 연결 권한을 부여합니다.It starts the endpoint, and gives connect permission to the user that you created. 스크립트를 실행하기 전에 **< ... >** 사이의 값을 바꿉니다.Before you run the script, replace the values between **< ... >**.

참고

이 릴리스의 경우 수신기 IP에 다른 IP 주소를 사용하지 마세요.For this release, do not use a different IP address for the listener IP. 이 문제에 대한 수정을 작업하는 중이지만 현재 허용되는 값은 '0.0.0.0'뿐입니다.We are working on a fix for this issue, but the only acceptable value for now is '0.0.0.0'.

모든 SQL Server 인스턴스에서 환경에 대한 다음 Transact-SQL을 업데이트합니다.Update the following Transact-SQL for your environment on all SQL Server instances:

CREATE ENDPOINT [Hadr_endpoint]
    AS TCP (LISTENER_IP = (0.0.0.0), LISTENER_PORT = **<5022>**)
    FOR DATA_MIRRORING (
        ROLE = ALL,
        AUTHENTICATION = CERTIFICATE dbm_certificate,
        ENCRYPTION = REQUIRED ALGORITHM AES
        );
ALTER ENDPOINT [Hadr_endpoint] STATE = STARTED;
GRANT CONNECT ON ENDPOINT::[Hadr_endpoint] TO [dbm_login];

중요

방화벽의 TCP 포트를 수신기 포트용으로 열어 두어야 합니다.The TCP port on the firewall needs to be open for the listener port.

중요

SQL Server 2017 릴리스의 경우 데이터베이스 미러링 끝점에 지원되는 인증 방법은 CERTIFICATE뿐입니다.For SQL Server 2017 release, the only authentication method supported for database mirroring endpoint is CERTIFICATE. WINDOWS 옵션은 향후 릴리스에서 사용할 수 있습니다.WINDOWS option will be enabled in a future release.

자세한 내용은 데이터베이스 미러링 끝점(SQL Server)을 참조하세요.For complete information, see The Database Mirroring Endpoint (SQL Server).

가용성 그룹 만들기Create the availability group

가용성 그룹을 만듭니다.Create the availability group. Set CLUSTER_TYPE = NONE.Set CLUSTER_TYPE = NONE. 또한 각 복제본으로 설정할 FAILOVER_MODE = NONE합니다.In addition, set each replica with FAILOVER_MODE = NONE. 클라이언트 응용 프로그램 분석을 실행 또는 워크 로드를 보고 직접 수 보조 데이터베이스에 연결 합니다.Client applications running analytics or reporting workloads can directly connect to the secondary databases. 읽기 전용 라우팅 목록도 만들 수 있습니다.You can also create a read-only routing list. 앞으로 주 복제본에 대 한 연결 라운드 로빈 방식에서 라우팅 목록에서 각 보조 복제본에 연결 요청을 읽습니다.Connections to the primary replica forward read connection requests to each of the secondary replicas from the routing list in a round robin fashion.

다음 TRANSACT-SQL 스크립트 가용성 그룹 이름의 만듭니다 ag1합니다.The following Transact-SQL script creates an availability group name ag1. 스크립트는 구성 된 가용성 그룹 복제본 SEEDING_MODE = AUTOMATIC합니다.The script configures the availability group replicas with SEEDING_MODE = AUTOMATIC. 이렇게이 설정 하면 SQL Server를 자동으로 가용성 그룹에 추가 된 후 각 보조 서버에 데이터베이스를 만듭니다.This setting causes SQL Server to automatically create the database on each secondary server after it is added to the availability group. 사용자 환경에 대 한 다음 스크립트를 업데이트 합니다.Update the following script for your environment. 대체는 **<node1>****<node2>** 복제본을 호스팅하는 SQL Server 인스턴스 이름 사용 하 여 값입니다.Replace the **<node1>** and **<node2>** values with the names of the SQL Server instances that host the replicas. 대체는 **<5022>** 포트와의 끝점에 대해 설정 합니다.Replace the **<5022>** with the port you set for the endpoint. 기본 SQL Server 복제에서 다음 TRANSACT-SQL을 실행 합니다.Run the following Transact-SQL on the primary SQL Server replica:

CREATE AVAILABILITY GROUP [ag1]
    WITH (CLUSTER_TYPE = NONE)
    FOR REPLICA ON
        N'**<node1>**' WITH (
            ENDPOINT_URL = N'tcp://**<node1>:**<5022>**',
            AVAILABILITY_MODE = ASYNCHRONOUS_COMMIT,
            FAILOVER_MODE = MANUAL,
            SEEDING_MODE = AUTOMATIC,
                    SECONDARY_ROLE (ALLOW_CONNECTIONS = ALL)
            ),
        N'**<node2>**' WITH ( 
            ENDPOINT_URL = N'tcp://**<node2>**:**<5022>**', 
            AVAILABILITY_MODE = ASYNCHRONOUS_COMMIT,
            FAILOVER_MODE = MANUAL,
            SEEDING_MODE = AUTOMATIC,
            SECONDARY_ROLE (ALLOW_CONNECTIONS = ALL)
            );

ALTER AVAILABILITY GROUP [ag1] GRANT CREATE ANY DATABASE;

보조 SQL Server 가용성 그룹에 조인Join secondary SQL Servers to the availability group

다음 TRANSACT-SQL 스크립트 라는 가용성 그룹에는 서버를 가입 시킵니다. ag1합니다.The following Transact-SQL script joins a server to an availability group named ag1. 사용자 환경에 대 한 스크립트를 업데이트 합니다.Update the script for your environment. SQL Server 각 보조 복제본에서 가용성 그룹에 참가 하려면 다음 TRANSACT-SQL을 실행 합니다.On each secondary SQL Server replica, run the following Transact-SQL to join the availability group.

ALTER AVAILABILITY GROUP [ag1] JOIN WITH (CLUSTER_TYPE = NONE);

ALTER AVAILABILITY GROUP [ag1] GRANT CREATE ANY DATABASE;

가용성 그룹에 데이터베이스 추가Add a database to the availability group

가용성 그룹에 추가하는 데이터베이스는 전체 복구 모드여야 하고 유효한 로그 백업이 있어야 합니다.Ensure the database you are adding to the Availability group is in full recovery mode and has a valid log backup. 테스트 데이터베이스이거나 새로 만든 데이터베이스인 경우 데이터베이스 백업을 수행합니다.If this is a test database or a new database created, take a database backup. 기본 SQL Server에서 다음 Transact-SQL을 실행하여 db1이라는 데이터베이스를 만들고 백업합니다.On the primary SQL Server, run the following Transact-SQL to create and back up a database called db1.

CREATE DATABASE [db1];
ALTER DATABASE [db1] SET RECOVERY FULL;
BACKUP DATABASE [db1] 
   TO DISK = N'/var/opt/mssql/data/db1.bak';

기본 SQL Server 복제본에서 다음 Transact-SQL을 실행하여 db1 데이터베이스를 가용성 그룹 ag1에 추가합니다.On the primary SQL Server replica, run the following Transact-SQL to add a database called db1 to an availability group called ag1.

ALTER AVAILABILITY GROUP [ag1] ADD DATABASE [db1];

데이터베이스가 보조 서버에 생성되었는지 확인Verify that the database is created on the secondary servers

각 보조 SQL Server 복제본에서 다음 쿼리를 실행하여 db1 데이터베이스가 생성되고 동기화되었는지 확인합니다.On each secondary SQL Server replica, run the following query to see if the db1 database has been created and is synchronized.

SELECT * FROM sys.databases WHERE name = 'db1';
GO
SELECT DB_NAME(database_id) AS 'database', synchronization_state_desc FROM sys.dm_hadr_database_replica_states;

이 항상 사용 가능한 구성, 고가용성이 필요한 경우의 지침에 따라 구성 Always On 가용성 그룹 Linux에서 SQL Server에 대 한합니다.This is not an high availability configuration, if you need high availability, follow the instructions at Configure Always On Availability Group for SQL Server on Linux. 특히 가용성 그룹을 만들 CLUSTER_TYPE=WSFC (Windows)에 또는 CLUSTER_TYPE=EXTERNAL (Linux)에서 클러스터 관리자-WSFC windows 또는 Linux에서 Pacemaker와 통합 합니다.Specifically, create the availability group with CLUSTER_TYPE=WSFC (in Windows) or CLUSTER_TYPE=EXTERNAL (in Linux) and integrate with a cluster manager - either WSFC on Windows or Pacemaker on Linux.

읽기 전용 보조 복제본에 연결Connect to read-only secondary replicas

읽기 전용 보조 복제본에 연결 하는 방법은 두 가지가 있습니다.There are two ways to connect to the read-only secondary replicas. 응용 프로그램에서 보조 복제본을 호스팅하는 SQL Server 인스턴스에 직접 연결 하 고는 데이터베이스를 쿼리할 수 또는 읽기 전용 라우팅을 사용할 수 있습니다.Applications can connect directly to the SQL Server instance that hosts the secondary replica and query the databases, or they can use read-only routing. 읽기 전용 라우팅이 수신기가 필요합니다.read-only routing requires a listener.

읽기 가능한 보조 복제본Readable secondary replicas

읽기 전용 라우팅read-only routing

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

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

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

데이터 손실 될 수 있는 강제 장애 조치Forced fail over with data loss

이 메서드를 사용 하 여 주 복제본 사용할 수 있고 복구할 수 있습니다.Use this method when the primary replica is not available and can not be recovered. 데이터 손실에 강제 장애 조치에 대 한 자세한 정보를 찾을 수 강제 수동 장애 조치를 수행합니다.You can find more information about forced failover with data loss at Perform a Forced Manual Failover.

장애 조치 데이터 손실를 적용 하려면 대상 보조 복제본을 호스팅하는 SQL 인스턴스에 연결을 실행 합니다.To force fail over with data loss, connect to the SQL instance hosting the target secondary replica and run:

ALTER AVAILABILITY GROUP [ag1] FORCE_FAILOVER_ALLOW_DATA_LOSS;

데이터 손실 없이 수동 장애 조치Manual fail over 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 issuing manual failing over, ensure that the target secondary replica is up to date, so that there is no potential data loss.

다음 단계에는 데이터 손실 없이 수동 장애 조치 하는 방법을 설명 합니다.The following steps describe how to manually fail over without data loss:

  1. 대상 보조 복제본 동기 커밋을 확인 하십시오.Make the target secondary replica synchronous commit.

    ALTER AVAILABILITY GROUP [ag1] MODIFY REPLICA ON N'**<node2>*' WITH (AVAILABILITY_MODE = SYNCHRONOUS_COMMIT);
    
  2. 업데이트 required_synchronized_secondaries_to_commit1입니다.Update required_synchronized_secondaries_to_committo 1.

    이 설정은 모든 활성 트랜잭션이 커밋 주 복제본과 동기 보조 데이터베이스를 하나 이상에 되는지 확인 합니다.This setting ensures that every active transaction is committed to the primary replica and at least one synchronous secondary. 가용성 그룹이 장애 조치는 synchronization_state_desc 동기화 되어 있을 때 준비가 고는 sequence_number은 모두 기본에 대 한 동일한과 대상 보조 복제본입니다.The availability group is ready to fail over when the synchronization_state_desc is SYNCHRONIZED and the sequence_number is the same for both primary and target secondary replica. 확인 하려면이 쿼리를 실행 합니다.Run this query to check:

    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; 
    
  3. 주 복제본을 보조 복제본의 수준을 내립니다.Demote the primary replica to secondary replica. 주 복제본 강등 된 읽기 전용입니다.After the primary replica is demoted, it is read-only. 보조 역할을 업데이트 하려면 주 복제본을 호스팅하는 SQL 인스턴스에서이 명령을 실행 합니다.Run this command on the SQL instance hosting the primary replica to update the role to SECONDARY:

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

    ALTER AVAILABILITY GROUP distributedag 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 has to be executed on all replicas part of the availability group.

다음 단계Next steps

분산형된 가용성 그룹 구성Configure distributed availability group

가용성 그룹에 대 한 자세한 정보Learn more about availability groups