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

このトピックに適用されますはいSQL Server (Linux の場合のみ)ありませんAzure SQL DatabaseありませんAzure SQL Data Warehouseありません。並列データ ウェアハウス THIS TOPIC APPLIES TO: yesSQL Server (Linux only)noAzure SQL DatabasenoAzure SQL Data WarehousenoParallel Data Warehouse

Linux では、SQL Server 常に 可用性グループ (AG) な読み取りワークロード用を構成できます。You can configure a SQL Server Always On Availability Group (AG) for read-scale workloads on Linux. 2 つの種類の Ag のアーキテクチャがあります。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. この記事では、読み取りスケール ワークロードについてクラスター マネージャーがない可用性グループを作成する方法について説明します。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 サーバーを再起動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 database 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 インスタンスで、次のコマンドを実行します。To create the database mirroring endpoint user, run the following command on all SQL Server instances:

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 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 user を使用してまたは 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. また、ユーザーに証明書へのアクセスを承認します。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. 証明書を作成するには、するには、すべてのセカンダリ サーバー上で、次のスクリプトを実行します。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   
    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 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 user 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 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];

注意

レプリカをホストする構成のみでの唯一の有効な値を 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 DATA_MIRRORING (
        ROLE = WITNESS,
        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 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).

可用性グループを作成します。Create the AG

可用性グループを作成します。Create the AG. 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 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 スクリプトを作成、AG というag1です。The following Transact-SQL script creates an AG named ag1. スクリプトは、構成、可用性グループ レプリカとSEEDING_MODE = AUTOMATICです。The script configures the AG 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 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 サーバーを可用性グループに参加させるJoin secondary SQL Servers to the AG

次の TRANSACT-SQL スクリプトは、AG という名前に、サーバーを結合ag1です。The following Transact-SQL script joins a server to an AG named ag1. 環境内で使用するスクリプトを更新します。Update the script for your environment. 各セカンダリ SQL Server レプリカで、可用性グループに参加する次の TRANSACT-SQL スクリプトを実行します。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;

この可用性グループでは、高可用性構成はありません。This AG isn't a high-availability configuration. 高可用性を実現する場合は、ある手順に従って、Always On 可用性グループを構成する SQL Server on Linux のします。If you need high availability, follow the instructions at Configure an Always On Availability Group for SQL Server on Linux. 具体的で、可用性グループを作成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 Server フェールオーバー クラスタ リング Windows または Linux のペースを使用して、クラスター マネージャーを統合し。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;

データ損失のない手動フェールオーバー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