Linux 上の SQL Server の Always On 可用性グループを構成します。Configure Always On availability group for SQL Server on Linux

適用対象: XSQL Server on Windows○SQL Server on LinuxXAzure SQL DatabaseXAzure SQL Data WarehouseXParallel Data Warehouse THIS TOPIC APPLIES TO: noSQL Server on WindowsyesSQL Server on LinuxnoAzure SQL DatabasenoAzure SQL Data WarehousenoParallel Data Warehouse

この記事では、Linux 上の高可用性の可用性グループに SQL サーバーを常に作成する方法について説明します。This article describes how to create a SQL Server Always on availability group for high availability on Linux. 可用性グループの 2 つの構成の種類があります。There are two configuration types for availability groups. A高可用性構成では、クラスター マネージャーを使用して、ビジネス継続性を提供します。A high availability configuration uses a cluster manager to provide business continuity. この構成では、読み取りのスケール アウト レプリカを含めることもできます。This configuration can also include read scale-out replicas. このドキュメントでは、可用性グループの高可用性構成を作成する方法について説明します。This document explains how to create the availability group high availability configuration.

作成することも、読み取りのスケール アウトクラスター マネージャーがない可用性グループです。You can also create a read scale-out availability group without a cluster manager. のみ、この構成は、パフォーマンスのスケール アウトの読み取り専用レプリカを提供します。高可用性は提供されません。This configuration only provides read-only replicas for performance scale-out. It does not provide high availability. 読み取りのスケール アウト可用性グループを作成するを参照してください。 Linux に SQL Server のスケール アウトの可用性グループを読み取る構成です。To create a read scale-out availability group, see Configure read scale-out availability group for SQL Server on Linux.

高可用性とデータ保護を保証する構成では、2 または 3 つの同期コミット レプリカが必要です。Configurations that guarantee high availability and data protection require either two or three synchronous commit replicas. 次の 3 つの同期レプリカ、可用性グループが自動的に回復場合でも、1 つのサーバーは使用できません。With three synchronous replicas the availability group can automatically recovery even if one server is not available. 詳細については、次を参照してください。可用性グループの構成の高可用性とデータ保護です。For more information, see High availability and data protection for availability group configurations.

物理または仮想、すべてのサーバーがある必要があり、仮想サーバーが同じ仮想化プラットフォーム上にある必要があります。All servers must be either physical or virtual, and virtual servers must be on the same virtualization platform. この要件は、フェンス操作エージェントがプラットフォーム固有であるためにです。This requirement is because the fencing agents are platform specific. 参照してくださいゲスト クラスターでポリシーです。See Policies for Guest Clusters.

ロードマップRoadmap

高可用性の Linux サーバーに可用性グループを作成する手順は、Windows Server フェールオーバー クラスター上の手順と異なります。The steps to create an availability group on Linux servers for high availability are different from the steps on a Windows Server failover cluster. 次に、高レベルの手順を説明します。The following list describes the high level steps:

  1. 次の 3 つのクラスター サーバーで SQL Server を構成するです。Configure SQL Server on three cluster servers.

    重要

    可用性グループ内のすべての 3 つのサーバーは、Linux の高可用性では、フェンス操作エージェントを使用して、サーバー上のリソースを特定するための物理または仮想の同じプラットフォーム上にある必要があります。All three servers in the availability group need to be on the same platform - physical or virtual - because Linux high availability uses fencing agents to isolate resources on servers. フェンス操作エージェントは、プラットフォームごとに固有です。The fencing agents are specific for each platform.

  2. 可用性グループを作成します。Create the availability group. この手順は、現在この記事の内容について説明します。This step is covered in this current article.

  3. ペースのように、クラスター リソース マネージャーを構成します。Configure a cluster resource manager, like Pacemaker.

    クラスター リソース マネージャーを構成する方法は、特定の Linux ディストリビューションに依存します。The way to configure a cluster resource manager depends on the specific Linux distribution. 配布の具体的な手順については、次のリンクを参照してください。See the following links for distribution specific instructions:

    重要

    実稼働環境では、高可用性を実現 STONITH などのフェンス操作エージェントが必要です。Production environments require a fencing agent, like STONITH for high availability. このドキュメントではデモンストレーションでは、フェンス操作エージェントは使用しないでください。The demonstrations in this documentation do not use fencing agents. デモは、テストおよび検証のみです。The demonstrations are for testing and validation only.

    Linux クラスターでは、フェンス操作を使用して、既知の状態をクラスターを返します。A Linux cluster uses fencing to return the cluster to a known state. フェンス操作を構成する方法は、分布と、環境によって異なります。The way to configure fencing depends on the distribution and the environment. 現時点では、フェンス操作では、一部のクラウド環境で使用できません。Currently, fencing is not available in some cloud environments. 詳細については、次を参照してください。 RHEL 高可用性クラスターの仮想化プラットフォームのサポート ポリシーです。For more information, see Support Policies for RHEL High Availability Clusters - Virtualization Platforms.

    SLES を参照してください。 SUSE Linux Enterprise 高可用性拡張子です。For SLES, see SUSE Linux Enterprise High Availability Extension.

  4. クラスター内のリソースとして、可用性グループを追加します。Add the availability group as a resource in the cluster.

    可用性グループ、クラスター内のリソースとして追加するための方法は、Linux ディストリビューションに依存します。The way to add the availability group as a resource in the cluster depends on the Linux distribution. 配布の具体的な手順については、次のリンクを参照してください。See the following links for distribution specific instructions:

前提条件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. 次のスクリプトを使うと、vi/etc/hostname を編集できます。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, 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.

すべてのサーバー上の 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. 次のスクリプトを使うと、vi/etc/hosts を編集できます。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 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 セッションの詳細については、「AlwaysOn の拡張イベント」をご覧ください。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. これら 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 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

SQL Server on Linux の 2 つのサポートされている可用性グループの構成があります。There are two supported availability group configurations for SQL Server on Linux.

詳細については、次を参照してください。可用性グループの構成の高可用性とデータ保護です。For information, see High availability and data protection for availability group configurations.

Linux 上の高可用性の可用性グループを作成します。Create the availability group for high availability on Linux. 使用して、可用性グループの作成CLUSTER_TYPE = EXTERNALです。Use the CREATE AVAILABILITY GROUP with CLUSTER_TYPE = EXTERNAL.

  • 可用性グループ -CLUSTER_TYPE = EXTERNAL外部クラスター エンティティが、可用性グループを管理することを指定します。Availability group - CLUSTER_TYPE = EXTERNAL Specifies that an external cluster entity manages the availability group. ペースでは、外部のクラスターのエンティティの例を示します。Pacemaker is an example of an external cluster entity. 可用性グループのクラスターの種類が外部の場合When the availability group cluster type is external,

  • プライマリ レプリカとセカンダリ レプリカを設定FAILOVER_MODE = EXTERNALです。Set Primary and secondary replicas FAILOVER_MODE = EXTERNAL. レプリカが対話ペースのように、外部のクラスター マネージャーを指定します。Specifies that the replica interacts with an external cluster manager, like Pacemaker.

次の TRANSACT-SQL スクリプトという名前の高可用性の可用性グループを作成するag1です。The following Transact-SQL scripts creates an availability group for high availability named 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. 環境内の次のスクリプトを更新します。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 data mirroring endpoint. 可用性グループを作成するには、プライマリ レプリカをホストする SQL Server インスタンスで次の TRANSACT-SQL を実行します。To create the availability group, run the following Transact-SQL on the SQL Server instance that hosts the primary replica.

実行1 つだけ以下のスクリプト。Run only one of the following scripts:

  • 次の 3 つの同期レプリカが可用性グループを作成します。Create availability group with three synchronous replicas.

    CREATE AVAILABILITY GROUP [ag1]
        WITH (DB_FAILOVER = ON, CLUSTER_TYPE = EXTERNAL)
        FOR REPLICA ON
            N'**<node1>**' 
             WITH (
                ENDPOINT_URL = N'tcp://**<node1>:**<5022>**',
                AVAILABILITY_MODE = SYNCHRONOUS_COMMIT,
                FAILOVER_MODE = EXTERNAL,
                SEEDING_MODE = AUTOMATIC
                ),
            N'**<node2>**' 
             WITH ( 
                ENDPOINT_URL = N'tcp://**<node2>**:**<5022>**', 
                AVAILABILITY_MODE = SYNCHRONOUS_COMMIT,
                FAILOVER_MODE = EXTERNAL,
                SEEDING_MODE = AUTOMATIC
                ),
            N'**<node3>**'
            WITH( 
               ENDPOINT_URL = N'tcp://**<node3>**:**<5022>**', 
               AVAILABILITY_MODE = SYNCHRONOUS_COMMIT,
               FAILOVER_MODE = EXTERNAL,
               SEEDING_MODE = AUTOMATIC
               );
    
    ALTER AVAILABILITY GROUP [ag1] GRANT CREATE ANY DATABASE;
    
    重要

    次の 3 つの同期レプリカが可用性グループを作成する前のスクリプトを実行した後、次のスクリプトを実行しません。After you run the preceding script to create an availability group with three synchronous replicas, do not run the following script:

  • 2 つの同期レプリカが可用性グループを作成します。Create availability group with two synchronous replicas

    同期の可用性モードの 2 つのレプリカが含まれます。Include two replicas with synchronous availability mode. 次のスクリプトがという可用性グループを作成するなど、ag1です。For example, the following script creates an availability group called ag1. node1およびnode2自動シード処理を自動フェールオーバーを伴うの同期モードでのレプリカをホストします。node1 and node2 host replicas in synchronous mode, with automatic seeding and automatic failover.

    重要

    のみと 2 つの同期レプリカの可用性グループを作成する次のスクリプトを実行します。Only run the following script to create an availability group with two synchronous replicas. 前述のスクリプトを実行した場合、次のスクリプトは実行されません。Do not run the following script if you ran the preceding script.

    CREATE AVAILABILITY GROUP [ag1]
       WITH (CLUSTER_TYPE = EXTERNAL)
       FOR REPLICA ON
       N'node1' WITH (
          ENDPOINT_URL = N'tcp://node1:5022',
          AVAILABILITY_MODE = SYNCHRONOUS_COMMIT,
          FAILOVER_MODE = EXTERNAL,
          SEEDING_MODE = AUTOMATIC
       ),
       N'node2' WITH ( 
          ENDPOINT_URL = N'tcp://node2:5022', 
          AVAILABILITY_MODE = SYNCHRONOUS_COMMIT,
          FAILOVER_MODE = EXTERNAL,
          SEEDING_MODE = AUTOMATIC
       );
    
    ALTER AVAILABILITY GROUP [ag1] GRANT CREATE ANY DATABASE;
    

持つ可用性グループを構成することもできます。 CLUSTER_TYPE=EXTERNAL SQL Server Management Studio または PowerShell を使用します。You can also configure an availability group with CLUSTER_TYPE=EXTERNAL using SQL Server Management Studio or PowerShell.

可用性グループにセカンダリ レプリカを参加します。Join secondary replicas to the availability group

次の TRANSACT-SQL スクリプトは、という名前の可用性グループに SQL Server インスタンスを結合ag1です。The following Transact-SQL script joins a SQL Server instance to an availability group named ag1. 環境内で使用するスクリプトを更新します。Update the script for your environment. セカンダリ レプリカをホストする各 SQL Server インスタンスでは、可用性グループに参加する次の TRANSACT-SQL を実行します。On each SQL Server instance that hosts a secondary replica, run the following Transact-SQL to join the availability group.

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

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 サーバーで実行を作成し、という名前のデータベースをバックアップの次の TRANSACT-SQLdb1です。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-SQLdb1を可用性グループと呼ばれる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;
重要

可用性グループを作成した後は、高可用性のペースのようなクラスター テクノロジを統合を構成する必要があります。After you create the availability group, you must configure integration with a cluster technology like Pacemaker for high availability. 以降で、可用性グループを使用して読み取りのスケール アウト構成SQL Server 2017SQL Server 2017クラスターのセットアップは必要ありません。For a read scale-out configuration using availability groups, starting with SQL Server 2017SQL Server 2017, setting up a cluster is not required.

このドキュメントで手順を実行する場合は、クラスター化されていない可用性グループがあります。If you followed the steps in this document, you have an availability group that is not yet clustered. 次の手順では、クラスターを追加します。The next step is to add the cluster. この構成は、読み取りのスケール アウト/負荷分散シナリオに対して有効は高可用性のために完了しません。This configuration is valid for read scale-out/load balancing scenarios, it is not complete for high availability. 高可用性を実現するには、可用性グループをクラスター リソースとして追加する必要があります。For high availability, you need to add the availability group as a cluster resource. 参照してください次のステップ手順についてはします。See Next steps for instructions.

Notes

重要

クラスターを構成し、可用性グループをクラスター リソースとして追加した後は TRANSACT-SQL を使用して、可用性グループのリソースをフェールオーバーすることはできません。After you configure the cluster and add the availability group as a cluster resource, you cannot use Transact-SQL to fail over the availability group resources. Linux 上の SQL Server クラスター リソースと関連していない緊密にオペレーティング システムで、Windows Server フェールオーバー クラスター (WSFC) とします。SQL Server cluster resources on Linux are not coupled as tightly with the operating system as they are on a Windows Server Failover Cluster (WSFC). SQL Server サービスでは、クラスターの存在を認識しません。SQL Server service is not aware of the presence of the cluster. すべてのオーケストレーションは、クラスター管理ツールを使って行われます。All orchestration is done through the cluster management tools. RHEL または Ubuntu を使用してpcsです。In RHEL or Ubuntu use pcs. SLES で使用してcrmです。In SLES use crm.

重要

既知の問題が、可用性グループがクラスター リソースの場合は、データ損失の非同期レプリカに強制フェールオーバーが機能しないという現在のリリースであります。If the availability group is a cluster resource, there is a known issue in current release where forced failover with data loss to an asynchronous replica does not work. これは、今後のリリースで修正されます。This will be fixed in the upcoming release. 同期レプリカへの手動または自動フェールオーバーは成功します。Manual or automatic failover to a synchronous replica succeeds.

次の手順Next steps

SQL Server 可用性グループのクラスター リソースの Red Hat Enterprise Linux クラスターを構成します。Configure Red Hat Enterprise Linux Cluster for SQL Server Availability Group Cluster Resources

SQL Server 可用性グループのクラスター リソースの SUSE Linux Enterprise Server クラスターを構成します。Configure SUSE Linux Enterprise Server Cluster for SQL Server Availability Group Cluster Resources

Ubuntu クラスターは、SQL Server 可用性グループのクラスター リソースを構成します。Configure Ubuntu Cluster for SQL Server Availability Group Cluster Resources