Linux 上の読み取りスケールの SQL Server 可用性グループの構成します。Configure a SQL Server Availability Group for read-scale on Linux

適用対象: はいSQL サーバー (Linux のみ)ありませんAzure SQL DatabaseありませんAzure SQL Data Warehouseありません並列データ ウェアハウス APPLIES TO: yesSQL Server (Linux only) noAzure SQL Database noAzure SQL Data Warehouse noParallel Data Warehouse

Linux で、SQL Server 常にで可用性グループ (AG) の読み取りスケール ワークロードを構成できます。You can configure a SQL Server Always On Availability Group (AG) for read-scale workloads on Linux. AG には 2 種類のアーキテクチャがあります。There are two types of architectures for AGs. 高可用性のアーキテクチャでは、クラスター マネージャーを使用して、改善されたビジネス継続性を提供します。A architecture for high availability uses a cluster manager to provide improved business continuity. このアーキテクチャは、読み取りスケール レプリカも含めることができます。This architecture also can include read-scale replicas. 高可用性アーキテクチャを作成するを参照してください。を構成する SQL Server Always On 可用性グループの Linux での高可用性します。To create the high-availability architecture, see Configure SQL Server Always On Availability Group for high availability on Linux. その他のアーキテクチャでは、読み取りスケール ワークロードのみをサポートします。The other architecture supports only read-scale workloads. この記事では、読み取りスケール ワークロードの場合で、クラスター マネージャーがない AG を作成する方法について説明します。This article explains how to create an AG without a cluster manager for read-scale workloads. このアーキテクチャは、読み取りスケールのみを提供します。This architecture provides read-scale only. 高可用性は提供されません。It doesn't provide high availability.

注意

CLUSTER_TYPE = NONE による可用性グループには、さまざまなオペレーティング システム プラットフォームでホストされているレプリカを含めることができます。An availability group with CLUSTER_TYPE = NONE can include replicas hosted on different operating system platforms. 高可用性はサポートできません。It cannot support high availability.

前提条件Prerequisites

可用性グループを作成する前に、以下のことを行う必要があります。Before you create the availability group, you need to:

  • 可用性レプリカをホストするすべてのサーバーが通信できるように環境を設定します。Set your environment so that all the servers that will host availability replicas can communicate.
  • SQL Server をインストールします。Install SQL Server.

注意

Linux では、クラスターによって管理されるクラスター リソースとして追加する前に、可用性グループを作成する必要があります。On Linux, you must create an availability group before you add 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. Hosts ファイルを構成します。Configure the hosts file.

    注意

    ホスト名が ip アドレス、DNS サーバーに登録されている場合は、次の手順を実行する必要はありません。If hostnames are registered with their IP in the DNS server, you don't need to do the following steps. 可用性グループの構成の一部にするためのもので、ノードすべてが、互いと通信できることを検証します。Validate that all the nodes intended to be part of the availability group configuration can communicate with each other. (ホスト名への ping は、対応する IP アドレスに応答する必要があります)。また、/etc/hosts ファイルに、ノードのホスト名を localhost IP アドレス 127.0.0.1 をマップするレコードが含まれていないことを確認します。(A ping to the hostname should reply with the corresponding IP address.) Also, make sure that the /etc/hosts file doesn't contain a record that maps the localhost IP address 127.0.0.1 with the hostname of the node.

    すべてのサーバー上の hosts ファイルには、可用性グループに参加するすべてのサーバーの 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/etc/hosts を示しています。node1node2node3 に対して追加があります。The following example shows /etc/hosts on node1 with additions for node1, node2, and node3. このドキュメントでnode1はプライマリ レプリカをホストするサーバーを表します。In this document, node1 refers to the server that hosts the primary replica. Node2node3セカンダリ レプリカをホストするサーバーを参照してください。And node2 and node3 refer to servers that host the 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:

AlwaysOn 可用性グループを有効にして mssql-server を再起動するEnable AlwaysOn availability groups and restart mssql-server

SQL Server インスタンスをホストする各ノードで AlwaysOn 可用性グループを有効にします。Enable AlwaysOn availability groups on each node that hosts a SQL Server instance. 再起動mssql-serverします。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 an AlwaysOn_health event session

必要に応じて、可用性グループをトラブルシューティングする際に、根本原因を診断を支援する AlwaysOn 可用性グループの拡張イベントを有効にできます。You can optionally enable AlwaysOn availability groups extended events to help with root-cause diagnosis when you troubleshoot an availability group. SQL Server の各インスタンスで次のコマンドを実行します。Run the following command on each instance of SQL Server:

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

この XE セッションの詳細については、次を参照してください。 AlwaysOn の拡張イベントします。For more information about this XE session, see AlwaysOn extended events.

証明書を作成する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 a certificate. その後、証明書をバックアップし、秘密キーでファイルをセキュリティ保護します。It then backs up the certificate and secures the file with a private key. 強力なパスワードでスクリプトを更新してください。Update the script with strong passwords. プライマリ SQL Server インスタンスに接続します。Connect to the primary SQL Server instance. 証明書を作成するには、次の TRANSACT-SQL スクリプトを実行します。To create the certificate, run the following Transact-SQL script:

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. これら 2 つのファイルを、可用性レプリカをホストするすべてのサーバー上の同じ場所にコピーします。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 the mssql user to access these files.

たとえば、ソース サーバーで、次のコマンド、ファイル コピー、ターゲット コンピューターにします。For example, on the source server, the following command copies the files to the target machine. 置換、**<node2>**レプリカをホストする SQL Server インスタンスの名前を持つ値。Replace the **<node2>** 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 the 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 a certificate from the backup that you created on the primary SQL Server replica. 強力なパスワードでスクリプトを更新してください。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. 証明書を作成するには、すべてのセカンダリ サーバー上で、次のスクリプトを実行します。To create the certificate, run the following script on all secondary servers:

CREATE MASTER KEY ENCRYPTION BY PASSWORD = '**<Master_Key_Password>**';
CREATE CERTIFICATE dbm_certificate
    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 the Transmission Control Protocol (TCP) to send and receive messages between the server instances that participate in database mirroring sessions or host availability replicas. データベース ミラーリング エンドポイントでは、一意な TCP ポート番号でリッスンします。The database mirroring endpoint listens on a unique TCP port number.

次の Transact-SQL スクリプトでは、可用性グループに対して Hadr_endpoint という名前のリスニング エンドポイントを作成します。The following Transact-SQL script creates a listening endpoint named Hadr_endpoint for the availability group. エンドポイントを開始し、作成した証明書への接続権限が与えられます。It starts the endpoint and gives connection permission to the certificate that you created. スクリプトを実行する前に、**< ... >** の間の値を置き換えます。Before you run the script, replace the values between **< ... >**. 必要に応じて、IP アドレス LISTENER_IP = (0.0.0.0) を含めることができます。Optionally you can include an IP address LISTENER_IP = (0.0.0.0). リスナー IP アドレスは、IPv4 アドレスである必要があります。The listener IP address must be an IPv4 address. 0.0.0.0 を使用することもできます。You can also use 0.0.0.0.

すべての SQL Server インスタンスで、ご利用の環境に合わせて次の Transact-SQL スクリプトを更新します。Update the following Transact-SQL script for your environment on all SQL Server instances:

CREATE ENDPOINT [Hadr_endpoint]
    AS TCP (LISTENER_PORT = **<5022>**)
    FOR DATABASE_MIRRORING (
        ROLE = ALL,
        AUTHENTICATION = CERTIFICATE dbm_certificate,
        ENCRYPTION = REQUIRED ALGORITHM AES
        );
ALTER ENDPOINT [Hadr_endpoint] STATE = STARTED;

注意

構成専用レプリカの唯一の有効な値をホストする 1 つのノードで、SQL Server Express Edition を使用するかどうかはROLEWITNESSします。If you use SQL Server Express Edition on one node to host a configuration-only replica, the only valid value for ROLE is WITNESS. SQL Server Express Edition では、次のスクリプトを実行します。Run the following script on SQL Server Express Edition:

CREATE ENDPOINT [Hadr_endpoint]
    AS TCP (LISTENER_PORT = **<5022>**)
    FOR DATABASE_MIRRORING (
        ROLE = WITNESS,
        AUTHENTICATION = CERTIFICATE dbm_certificate,
        ENCRYPTION = REQUIRED ALGORITHM AES
        );
ALTER ENDPOINT [Hadr_endpoint] STATE = STARTED;

ファイアウォールの TCP ポートをリスナー ポート用に開く必要があります。The TCP port on the firewall must be open for the listener port.

重要

データベース ミラーリング エンドポイントのサポートされている唯一の認証方法は、SQL Server 2017 リリースでは、CERTIFICATEします。For the SQL Server 2017 release, the only authentication method supported for the database mirroring endpoint is CERTIFICATE. WINDOWSオプションは、将来のリリースで有効になります。The WINDOWS option will be enabled in a future release.

詳細については、「データベース ミラーリング エンドポイント (SQL Server)」を参照してください。For more information, see The database mirroring endpoint (SQL Server).

AG を作成するCreate the AG

AG を作成します。Create the AG. CLUSTER_TYPE = NONE を設定します。Set CLUSTER_TYPE = NONE. さらに、FAILOVER_MODE = MANUAL で各レプリカを設定します。In addition, set each replica with FAILOVER_MODE = MANUAL. 分析やレポートのワークロードを実行するクライアント アプリケーションは、セカンダリ データベースに直接接続できます。Client applications running analytics or reporting workloads can directly connect to the secondary databases. また、読み取り専用ルーティング リストを作成できます。You also can 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 という名前の AG が作成されます。The following Transact-SQL script creates an AG named ag1. このスクリプトでは、SEEDING_MODE = AUTOMATIC で AG レプリカが構成されます。The script configures the AG replicas with SEEDING_MODE = AUTOMATIC. この設定によって、SQL Server は AG にセカンダリ サーバーが追加されるたびに、そのセカンダリ サーバーでデータベースを自動作成します。This setting causes SQL Server to automatically create the database on each secondary server after it is added to the AG. ご利用の環境に合わせて次のスクリプトを変更してください。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> value with the port you set for the endpoint. プライマリ SQL Server レプリカで次の Transact-SQL スクリプトを実行します。Run the following Transact-SQL script 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 を AG に参加させるJoin secondary SQL Servers to the AG

次の Transact-SQL スクリプトにより、ag1 という名前の AG にサーバーが参加します。The following Transact-SQL script joins a server to an AG named ag1. ご利用の環境に合わせてスクリプトを変更してください。Update the script for your environment. 各セカンダリ SQL Server レプリカで次の Transact-SQL スクリプトを実行し、AG に参加させます。On each secondary SQL Server replica, run the following Transact-SQL script to join the AG:

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 that the database you add to the availability group is in full recovery mode and has a valid log backup. テスト データベースまたは新しく作成されたデータベースの場合は、データベース バックアップを実行します。If this is a test database or a newly created database, take a database backup. プライマリ SQL Server で、次の Transact-SQL スクリプトを実行し、db1 という名前のデータベースを作成してバックアップします。On the primary SQL Server, run the following Transact-SQL script 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 script 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 was 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;

この AG は高可用性構成ではありません。This AG isn't a high-availability configuration. 高可用性を必要がある場合は」の手順に従ってくださいLinux 上の SQL Server の Always On 可用性グループを構成するします。If you need high availability, follow the instructions at Configure an Always On Availability Group for SQL Server on Linux. 含む AG を具体的には、作成CLUSTER_TYPE=WSFC(Windows) でまたはCLUSTER_TYPE=EXTERNAL(Linux) にします。Specifically, create the AG with CLUSTER_TYPE=WSFC (in Windows) or CLUSTER_TYPE=EXTERNAL (in Linux). クラスタ リング Windows または Linux 上の Pacemaker をいずれかの Windows Server フェールオーバーを使用して、クラスター マネージャーと統合します。Then integrate with a cluster manager by using either Windows Server failover clustering on Windows or Pacemaker on Linux.

読み取り専用セカンダリ レプリカに接続するConnect to read-only secondary replicas

読み取り専用セカンダリ レプリカには 2 つの方法で接続できます。There are two ways to connect to read-only secondary replicas. アプリケーションは、セカンダリ レプリカをホストする SQL Server インスタンスに直接接続し、データベースにクエリを実行できます。Applications can connect directly to the SQL Server instance that hosts the secondary replica and query the databases. リスナーを要求する読み取り専用ルーティングも利用できます。They also can use read-only routing, which requires a listener.

読み取りスケール可用性グループのプライマリ レプリカをフェールオーバーするFail over the primary replica on a read-scale Availability Group

各可用性グループにはプライマリ レプリカが 1 つだけあります。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. クラスターの種類が NONE の可用性グループでは、フェールオーバー プロセスは手動です。In an availability group with cluster type NONE, the failover process is manual.

クラスターの種類が NONE の可用性グループでプライマリ レプリカをフェールオーバーするには、2 つの方法があります。There are two ways to fail over the primary replica in an availability group with cluster type NONE:

  • データ損失のある強制的な手動フェールオーバー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 then run the following command:

ALTER AVAILABILITY GROUP [ag1] FORCE_FAILOVER_ALLOW_DATA_LOSS;

以前のプライマリ レプリカが復旧するときは、プライマリ ロールも想定されます。When the previous primary replica recovers, it will also assume the primary role. 確実に以前のプライマリ レプリカをセカンダリ ロールに移行するには、以前のプライマリ レプリカで次のコマンドを実行します。To ensure that the previous primary replica transitions into a secondary role run the following command on the previous primary replica.

ALTER AVAILABILITY GROUP [ag1]  SET (ROLE = SECONDARY);

データ損失のない手動フェールオーバー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. データ損失の可能性を排除するため、手動フェールオーバーを実行する前にターゲット セカンダリ レプリカが最新の状態であることを確認します。To avoid potential data loss, before you issue the manual failover, ensure that the target secondary replica is up to date.

データ損失のない手動フェールオーバーを行うには: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. アクティブなトランザクションが、プライマリ レプリカと少なくとも 1 つの同期セカンダリ レプリカにコミットされていることを確認するために、次のクエリを実行します。To identify that active transactions are committed to the primary replica and at least one synchronous secondary replica, run the following query:

    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.

    次の例のスクリプトは、ag1 という名前の可用性グループで REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT を 1 に設定します。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;
    

    この設定により、すべてのアクティブなトランザクションが、プライマリ レプリカと少なくとも 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. ロールを SECONDARY に更新するには、プライマリ レプリカをホストしている SQL Server インスタンスで次のコマンドを実行します。To update the role to SECONDARY, run the following command on the SQL Server instance that hosts the primary replica:

    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. 種類が NONE または EXTERNAL のクラスターを使って作成された可用性グループでは、可用性グループに含まれるすべてのレプリカでコマンドを実行する必要があります。For an availability group that's created with cluster type NONE or EXTERNAL, execute the command on all replicas that are part of the availability group.

次の手順Next steps