Always On 可用性グループの前提条件、制限事項、推奨事項

適用対象: はいSQL Server (サポートされているすべてのバージョン)

この記事では、Always On 可用性グループ の展開に関して、各種コンポーネント (ホスト コンピューター、Windows Server フェールオーバー クラスタリング (WSFC)、サーバー インスタンス、可用性グループ) の前提条件、制限、推奨事項などの考慮事項について説明します。 各コンポーネントのセキュリティに関する考慮事項のほか、要求される権限 (該当する場合) にも触れています。

重要

Always On 可用性グループを配置する前に、このトピックのすべてのセクションを読むことを強くお勧めします。

可用性グループをサポートする .NET 修正プログラム

SQL Server で使用する Always On 可用性グループコンポーネントと機能によっては、次の表で指定されている追加の .NET 修正プログラムのインストールが必要になる場合があります。 これらの修正プログラムは任意の順序でインストールできます。

依存機能 修正プログラム Link
Reporting Services .NET 3.5 SP1 の修正プログラムでは、SQL クライアントに読み取り目的、読み取り専用、multisubnetfailover の Always On 機能のサポートが追加されます。 修正プログラムは、各 Reporting Services レポート サーバーにインストールする必要があります。 KB 2654347:Always On 機能のサポートが追加される .NET 3.5 SP1 の修正プログラム

チェック リスト:要件 (Windows システム)

Always On 可用性グループ の機能を利用するには、1 つまたは複数の可用性グループに参加するすべてのコンピューターが、次の基本要件を満たしている必要があります。

要件 Link
システムがドメイン コントローラーではないことを確認します。 可用性グループは、ドメイン コントローラーではサポートされていません。
すべてのコンピューターで Windows Server 2012 以降のバージョンが実行されていることを確認します。 SQL Server 2016 のインストールに必要なハードウェアおよびソフトウェア
各コンピューターが WSFC のノードであることを確認します。 Windows Server フェールオーバー クラスタリング (WSFC) と SQL Server
必要な可用性グループの構成に耐える十分なノードが WSFC に存在することを確認します。 クラスター ノードでは、可用性グループのレプリカを 1 つホストできます。 同じノードで、同じ可用性グループのレプリカを 2 つホストすることはできません。 クラスター ノードは複数の可用性グループに参加できます。その際、各グループからのレプリカは 1 つです。

予定している可用性グループの可用性レプリカをサポートするために必要なクラスター ノードの数については、データベース管理者にお問い合わせください。

Always On 可用性グループの概要 (SQL Server)

重要

可用性グループへの接続に必要な構成が環境に対して正しく実施されていることも確認します。 詳細については、「 Always On クライアント接続 (SQL Server)

可用性レプリカをホストするコンピューターに関する推奨事項 (Windows システム)

  • 同程度のシステム: 可用性グループ内の可用性レプリカはすべて、ワークロードの処理能力が同程度であるシステム上で運用する必要があります。

  • 専用のネットワーク アダプター: 最良のパフォーマンスを得るには、Always On 可用性グループ に専用のネットワーク アダプター (ネットワーク インターフェイス カード) を使用します。

  • 十分なディスク領域: 可用性レプリカをホストするサーバー インスタンスのあるすべてのコンピューターには、可用性グループ内のすべてのデータベースを格納できるだけのディスク領域が存在する必要があります。 プライマリ データベースが大きくなるにつれて、対応するセカンダリ データベースも同じだけ大きくなる点に注意してください。

権限 (Windows システム)

WSFC を管理するユーザーは、すべてのクラスター ノードのシステム管理者であることが必要です。

クラスターを管理するためのアカウントの詳細については、「付録 A: フェールオーバー クラスターの要件」を参照してください。

タスク Link
HostRecordTTL の値を設定します。 HostRecordTTL の変更 (Windows PowerShell を使用)

HostRecordTTL の変更 (Windows PowerShell を使用)

  1. [管理者として実行] を選択して PowerShell ウィンドウを開きます。

  2. FailoverClusters モジュールをインポートします。

  3. Get-ClusterResource コマンドレットを使用してネットワーク名リソースを検索し、次に Set-ClusterParameter コマンドレットを使用して HostRecordTTL 値を設定します。次に例を示します。

    Get-ClusterResource " <NetworkResourceName> " | Set-ClusterParameter HostRecordTTL <TimeInSeconds>

    次に示す PowerShell の例では、SQL Network Name (SQL35) というネットワーク名リソースの HostRecordTTL を 300 秒に設定します。

    Import-Module FailoverClusters  
    
    $nameResource = "SQL Network Name (SQL35)"  
    Get-ClusterResource $nameResource | Set-ClusterParameter ClusterParameter HostRecordTTL 300  
    

    ヒント

    新しい PowerShell ウィンドウを開くたびに、 FailoverClusters モジュールをインポートする必要があります。

SQL Server インスタンスの前提条件と制限

可用性グループにはそれぞれ、 のインスタンスによってホストされる一連のフェールオーバー パートナー ( 可用性レプリカ SQL Server) が必要です。 サーバー インスタンスには、 スタンドアロン インスタンス または SQL Serverフェールオーバー クラスター インスタンス (FCI) を使用できます。

このセクションの内容

チェック リスト:前提条件 (サーバー インスタンス)

前提条件 リンク
このホスト コンピューターは WSFC ノードである必要があります。 可用性グループの可用性レプリカをホストする SQL Server のインスタンスは、クラスターの別のノードに存在します。 別のクラスターに移行するときに、可用性グループは一時的に 2 つのクラスターにまたがることができます。 SQL Server 2016 には分散型可用性グループが導入されています。 分散型可用性グループでは、2 つの可用性グループが別々のクラスターに存在します。 Windows Server フェールオーバー クラスタリング (WSFC) と SQL Server

フェールオーバー クラスタリングと Always On 可用性グループ (SQL Server)

分散型可用性グループ (Always On 可用性グループ)
可用性グループで Kerberos を操作するには:

可用性グループの可用性レプリカをホストするすべてのサーバー インスタンスで、同じ SQL Server サービス アカウントを使用する必要があります。

ドメイン管理者は、可用性グループ リスナーの仮想ネットワーク名 (VNN) の SQL Server サービス アカウントに、Active Directory でサーバー プリンシパル名 (SPN) を手動で登録する必要があります。 SQL Server サービス アカウント以外のアカウントに SPN が登録されている場合は、認証が失敗します。



** 重要 ** SQL Server サービス アカウントを変更した場合は、ドメイン管理者が SPN を手動で再登録する必要があります。
Kerberos 接続用のサービス プリンシパル名の登録

簡単な説明:

Kerberos と SPN は相互認証を行います。 SPN は、SQL Server サービスを起動する Windows アカウントにマップされます。 SPN が正常に登録されていないか登録に失敗した場合、Windows セキュリティ レイヤーは、SPN に関連するアカウントを決定することができず、Kerberos 認証は使用できません。



注:NTLM には、この要件はありません。
SQL Server フェールオーバー クラスター インスタンス (FCI) を使用して可用性レプリカをホストする予定がある場合は、FCI の制限を確実に理解し、FCI の要件が満たされていることを確認してください。 SQL Server のフェールオーバー クラスター インスタンス (FCI) を使用して可用性レプリカをホストするための前提条件と要件 (この記事の後半)
Always On 可用性グループに参加するために、各サーバー インスタンスで同じバージョンの SQL Server が実行されている必要がある。 SQL 2014SQL 2016SQL 2017 の各エディションとサポートされる機能
特定の可用性グループの可用性レプリカをホストするすべてのサーバー インスタンス間で SQL Server の照合順序を統一する必要があります。 サーバーの照合順序の設定または変更
可用性グループの可用性レプリカをホストするすべてのサーバー インスタンスで Always On 可用性グループ 機能を有効にします。 Always On 可用性グループ のサーバー インスタンスは、 SQL Server 環境がサポートする範囲内であれば、1 台のコンピューターでいくつでも有効にすることができます。 AlwaysOn 可用性グループの有効化と無効化 (SQL Server)



** 重要 ** WSFC を破棄してから再作成した場合は、Always On 可用性グループ を有効にしていた、元のクラスター上の各サーバー インスタンスについて、Always On 可用性グループ 機能を無効にしてからもう一度有効にする必要があります。
すべてのサーバー インスタンスには、データベース ミラーリング エンドポイントが必要です。 このエンドポイントは、サーバー インスタンス上のミラーリング監視サーバーとデータベース ミラーリング パートナー、および可用性レプリカすべてによって共有されます。

可用性レプリカのホストとして選んだサーバー インスタンスがドメイン ユーザー アカウントで実行されていて、まだデータベース ミラーリング エンドポイントが存在しない場合、 新しい可用性グループ ウィザード (または 可用性グループへのレプリカの追加ウィザード) でエンドポイントを作成し、サーバー インスタンス サービス アカウントに CONNECT 権限を許可することができます。 ただし、 SQL Server サービスがビルトイン アカウント (Local System、Local Service、Network Service など) で実行されている場合または非ドメイン アカウントで実行されている場合は、エンドポイント認証に証明書を使用する必要があります。ウィザードは、サーバー インスタンス上でデータベース ミラーリング エンドポイントを作成できなくなります。 この場合は、データベース ミラーリング エンドポイントを手動で作成してからウィザードを起動することをお勧めします。



** セキュリティに関する注意 **Always On 可用性グループ のトランスポート セキュリティは、データベース ミラーリングと同じです。
データベース ミラーリング エンドポイント (SQL Server)

データベース ミラーリングと Always On 可用性グループのトランスポート セキュリティ (SQL Server)
FILESTREAM を使用するデータベースを可用性グループに追加する場合は、その可用性グループの可用性レプリカをホストするすべてのサーバー インスタンスで FILESTREAM が有効になっていることを確認してください。 FILESTREAM の有効化と構成
包含データベースを可用性グループに追加する場合は、その可用性グループの可用性レプリカをホストするすべてのサーバー インスタンスで contained database authentication サーバー オプションが 1 に設定されていることを確認してください。 contained database authentication サーバー構成オプション

サーバー構成オプション (SQL Server)

可用性グループによるスレッドの使用

Always On 可用性グループ には、ワーカー スレッドに関する次の要件があります。

  • SQL Serverのアイドル状態のインスタンスでは、 Always On 可用性グループ はスレッドを使用しません。

  • 可用性グループが使用するスレッドの最大数は、サーバー スレッドの最大数 ('max worker threads') から 40 を引いた数にあらかじめ設定されています。

  • 特定のサーバー インスタンスでホストされる可用性レプリカは 1 つのスレッド プールを共有します。

    スレッドは、次のように要求に基づいて共有されます。

    • 通常は 3 個から 10 個の共有スレッドがありますが、プライマリ レプリカのワークロードに応じてこの数が増える場合があります。

    • 特定のスレッドが一定期間アイドル状態になると、そのスレッドは解放され、 SQL Server の汎用スレッド プールに戻されます。 通常、非アクティブ スレッドは、非アクティブな状態のまま最大 15 秒経過すると解放されます。 ただし、最後の利用状況によっては、アイドル状態のスレッドが保持される時間が延長される場合があります。

    • SQL Server インスタンスは、セカンダリ レプリカの並列再実行に最大で 100 個のスレッドを使用します。 各データベースは、最大で、CPU コアの合計数の半分を使用しますが、データベースあたりのスレッド数は 16 個以下となります。 単一のインスタンスで必要なスレッド数の合計が 100 を超えている場合、SQL Server は、残りの各データベースには単一の再実行スレッドを使用します。 シリアル再実行スレッドは、非アクティブな状態のまま最大 15 秒経過すると解放されます。

  • さらに、可用性グループでは非共有スレッドを次のように使用します。

    • 各プライマリ レプリカでは、プライマリ データベースごとにログ キャプチャ スレッドを 1 つ使用します。 また、セカンダリ データベースごとにログ送信スレッドを 1 つ使用します。 ログ送信スレッドは、非アクティブな状態のまま最大 15 秒経過すると解放されます。

    • セカンダリ レプリカでのバックアップでは、バックアップ操作の間、プライマリ レプリカにスレッドが保持されます。

  • SQL Server 2019 では、メモリ最適化可用性グループ データベースに対する並列再実行が導入されました。 SQL Server 2016 と 2017 では、可用性グループ内のデータベースがメモリ最適化もされている場合、ディスク ベースのテーブルで並列再実行は使用されません。

詳細については、「Always On - HADRON 学習シリーズ: HADRON 対応データベースでのワーカー プールの使用」 (CSS SQL Server エンジニア ブログ) を参照してください。

権限 (サーバー インスタンス)

タスク 必要なアクセス許可
データベース ミラーリング エンドポイントを作成する CREATE ENDPOINT 権限、または sysadmin 固定サーバー ロールのメンバーシップが必要です。 また、CONTROL ON ENDPOINT 権限も必要です。 詳細については、「 GRANT (エンドポイントの権限の許可) (Transact-SQL)」を参照してください。
有効にする Always On 可用性グループ ローカル コンピューターの Administrator グループのメンバーシップおよび WSFC に対するフル コントロール権限が必要です。
タスク [アーティクル]
データベース ミラーリング エンドポイントが存在するかどうかを確認する sys.database_mirroring_endpoints (Transact-SQL)
データベース ミラーリング エンドポイントを作成する (まだ存在しない場合) Windows 認証でのデータベース ミラーリング エンドポイントの作成 (Transact-SQL)

データベース ミラーリング エンドポイントでの証明書の使用 (Transact-SQL)

AlwaysOn 可用性グループのデータベース ミラーリング エンドポイントの作成 (SQL Server PowerShell)
可用性グループを有効にする AlwaysOn 可用性グループの有効化と無効化 (SQL Server)

ネットワーク接続の推奨事項

WSFC ノード間の通信と、可用性レプリカ間の通信には、同じネットワーク リンクを使用することを強くお勧めします。 別々のネットワーク リンクを使用すると、一部のリンクにエラーが発生した場合に (断続的なエラーであっても)、予期しない動作が発生する可能性があります。

たとえば、自動フェールオーバーをサポートする可用性グループでは、自動フェールオーバー パートナーであるセカンダリ レプリカの状態が SYNCHRONIZED である必要があります。 このセカンダリ レプリカへのネットワーク リンクにエラーが発生した場合 (断続的なエラーであっても)、レプリカが UNSYNCHRONIZED 状態になり、リンクが復元されるまで再同期を開始できません。 セカンダリ レプリカが非同期状態にある間に WSFC が自動フェールオーバーを要求しても、自動フェールオーバーは行われません。

クライアント接続のサポート

クライアント接続に関する Always On 可用性グループ のサポートについては、「 Always On クライアント接続 (SQL Server)

SQL Server のフェールオーバー クラスター インスタンス (FCI) を使用して可用性レプリカをホストするための前提条件と制限

このセクションの内容

制限 (FCI)

注意

フェールオーバー クラスター インスタンスは、クラスター化共有ボリューム (CSV) をサポートしています。 CSV の詳細については、「 フェールオーバー クラスターのクラスターの共有ボリュームについて」を参照してください。

  • FCI のクラスター ノードでホストできるレプリカは、特定の可用性グループに対して 1 つだけである: FCI に可用性レプリカを追加する場合、FCI の有効な所有者である WSFC ノードで、同じ可用性グループに対して別のレプリカをホストすることはできません。 競合を避けるために、フェールオーバー クラスター インスタンスの所有者を構成することをお勧めします。 これにより、1 つの WSFC によって同じ可用性グループの 2 つの可用性レプリカがホストされる可能性がなくなります。

    さらに、その他の各レプリカは、同じ Windows Server フェールオーバー クラスター内の別のクラスター ノードに存在する SQL Server 2016 のインスタンスによってホストされている必要があります。 唯一の例外は、別のクラスターに移行するときに、可用性グループは一時的に 2 つのクラスターにまたがることができるという点です。

警告

フェールオーバー クラスター マネージャーを使用して、可用性グループをホストしている フェールオーバー クラスター インスタンス を、同じ可用性グループのレプリカを "すでに" ホストしているノードに移動すると、可用性グループのレプリカが失われ、それによってターゲット ノード上でオンラインにできなくなる可能性があります。 フェールオーバー クラスターの 1 つのノードでは、同じ可用性グループの複数のレプリカをホストすることはできません。 これがどのように発生し、どのように回復するかの詳細については、ブログ記事の「Replica unexpectedly dropped in availability group」(可用性グループでレプリカが予想外に削除される) を参照してください。

  • 可用性グループによる自動フェールオーバーは FCI ではサポートされない: FCI は可用性グループによる自動フェールオーバーをサポートしないため、FCI によってホストされる可用性レプリカは手動フェールオーバー用にのみ構成できます。

  • FCI ネットワーク名の変更: 可用性レプリカがホストされている FCI のネットワーク名を変更する必要がある場合、レプリカをその可用性グループから削除してから再度、可用性グループに追加する必要があります。 プライマリ レプリカを削除することはできません。そのため、プライマリ レプリカがホストされている FCI の名前を変更するには、セカンダリ レプリカにフェールオーバーしてから、以前のプライマリ レプリカを削除し、再度追加する必要があります。 FCI の名前を変更すると、そのデータベース ミラーリング エンドポイントの URL が変わる可能性があります。 レプリカを追加する際は、必ず最新のエンドポイントの URL を指定してください。

チェック リスト:前提条件 (FCI)

前提条件 Link
標準の SQL Server フェールオーバー クラスター インスタンスのインストールと同様、各 SQL Server フェールオーバー クラスター インスタンス (FCI) が必要な共有ストレージを所有していることを確認してください。
タスク [アーティクル]
SQL Server フェールオーバー クラスターのインストール 新しい SQL Server フェールオーバー クラスターの作成 (セットアップ)
既存の SQL Server フェールオーバー クラスターのインプレース アップグレード SQL Server フェールオーバー クラスター インスタンスのアップグレード (セットアップ)
既存の SQL Server フェールオーバー クラスターのメンテナンス SQL Server フェールオーバー クラスターでのノードの追加または削除 (セットアップ)

可用性グループの前提条件と制限

このセクションの内容

制限 (可用性グループ)

  • 可用性レプリカは、1 つの WSFC の別々のノードによってホストされている必要がある: 各可用性グループで、個々の可用性レプリカは、同じ WSFC の別々のノード上で動作するサーバー インスタンスによってホストされる必要があります。 唯一の例外は、別のクラスターに移行するときに、可用性グループは一時的に 2 つのクラスターにまたがることができるという点です。

    注意

    同じ物理コンピューター上の各仮想マシンは独立したコンピューターとして動作するため、同じ可用性グループの可用性レプリカをそれぞれの仮想マシンがホストできます。

  • 一意の可用性グループ名: 各可用性グループの名前は、WSFC 上で一意である必要があります。 可用性グループ名の最大文字数は 128 文字です。

  • 可用性レプリカ: 各可用性グループは、1 個のプライマリ レプリカと最大 8 個のセカンダリ レプリカをサポートします。 すべてのレプリカを非同期コミット モードで実行することも、最大 5 つのレプリカを同期コミット モードで実行することもできます (1 つのプライマリ レプリカと 2 つの同期セカンダリ レプリカ)。 各レプリカには、Windows と SQL Server の両方で一意のサーバー名が必要です。 サーバー名は Windows と SQL Server の間で一致する必要があります。

  • コンピューターあたりの可用性グループおよび可用性データベースの最大数: コンピューター (仮想マシンまたは物理コンピューター) に実際に配置できるデータベースおよび可用性グループの数はハードウェアとワークロードによって異なりますが、強制的な制限はありません。 Microsoft では物理マシンあたり最大 10 AG および 100 DB までをテストしていますが、これはバインドの上限ではありません。 サーバー上のハードウェア仕様とワークロードに応じて、SQL Server のインスタンス上により多くのデータベースと可用性グループを配置できます。 過剰な負荷がかかっているシステムには、ワーカー スレッドの枯渇、可用性グループ システム ビューおよび DMV の応答の遅延、ディスパッチャー システム ダンプの一時停止などの症状があります (ただし、これだけではありません)。 アプリケーション SLA 内でピーク ワークロード容量を処理できることを確認するために、実稼働環境と同様のワークロードを使用して環境を十分にテストしてください。 SLA を検討する際は、障害条件下の負荷や期待される応答時間を考慮してください。

  • 可用性グループの操作のために、フェールオーバー クラスター マネージャーを使用してしないでください。 SQL Server Failover Cluster Instance (FCI) の状態は SQL Server と Windows Failover Cluster (WSFC) の間で共有されます。SQL Server には、インスタンスに関する情報が、クラスターよりも詳細にわたって保存されます。 管理モデルは、SQL Server によるトランザクションの促進を必要とするものであり、クラスターの状態の表示を SQL Server の状態の表示に同期させたまま保持する役目を持っています。 クラスターの状態が SQL Server の外部で変更された場合、WSFC と SQL Server の間で状態が同期していないことがあり、予想外の動作が引き起こされることがあります。

    次に例を示します。

    • 可用性グループのプロパティ (たとえば、有効な所有者) を変更しないでください。

    • フェールオーバー クラスター マネージャーを使用して可用性グループをフェールオーバーしないでください。 Transact-SQL または SQL Server Management Studioを使用する必要があります。

前提条件 (可用性グループ)

可用性グループの構成を作成したり再構成したりする場合は、次の要件を満たす必要があります。

前提条件 説明
SQL Server フェールオーバー クラスター インスタンス (FCI) を使用して可用性レプリカをホストする予定がある場合は、FCI の制限を確実に理解し、FCI の要件が満たされていることを確認してください。 SQL Server のフェールオーバー クラスター インスタンス (FCI) を使用して可用性レプリカをホストするための前提条件と制限 (このトピックの前半)

セキュリティ (可用性グループ)

  • セキュリティは WSFC から継承されます。 Windows Server フェールオーバー クラスタリングには、クラスター全体の粒度で 2 レベルのユーザー セキュリティがあります。

    • 読み取り専用アクセス

    • フル コントロール

      Always On 可用性グループ はフル コントロールを必要とします。また、Always On 可用性グループ を有効にした SQL Server のインスタンスには、クラスターのフル コントロール権限が (サービス SID を介して) 与えられます。

      サーバー インスタンスのセキュリティをクラスター マネージャーで直接追加したり削除したりすることはできません。 クラスター セキュリティ セッションを管理するには、SQL Server 構成マネージャーまたはそれに相当する SQL Server の WMI を使用します。

  • SQL Server の各インスタンスには、レジストリやクラスターにアクセスするための権限が必要です。

  • Always On 可用性グループ 可用性レプリカをホストするサーバー インスタンス間の接続は暗号化するようにお勧めします。

権限 (可用性グループ)

タスク 必要なアクセス許可
可用性グループの作成 sysadmin 固定サーバー ロールのメンバーシップと、CREATE AVAILABILITY GROUP サーバー権限、ALTER ANY AVAILABILITY GROUP 権限、CONTROL SERVER 権限のいずれかが必要です。
可用性グループの変更 可用性グループの ALTER AVAILABILITY GROUP 権限、CONTROL AVAILABILITY GROUP 権限、ALTER ANY AVAILABILITY GROUP 権限、または CONTROL SERVER 権限が必要です。

さらに、データベースを可用性グループに参加させるには、 db_owner 固定データベース ロールのメンバーシップが必要です。
可用性グループの削除 可用性グループの ALTER AVAILABILITY GROUP 権限、CONTROL AVAILABILITY GROUP 権限、ALTER ANY AVAILABILITY GROUP 権限、または CONTROL SERVER 権限が必要です。 ローカル レプリカの場所でホストされていない可用性グループを削除するには、その可用性グループ上の CONTROL SERVER 権限または CONTROL 権限が必要です。
タスク [アーティクル]
可用性グループの作成 可用性グループ (新しい可用性グループ ウィザード)

可用性グループの作成 (Transact-SQL)

可用性グループの作成 (SQL Server PowerShell)

可用性レプリカを追加または変更する場合のエンドポイント URL の指定 (SQL Server)
可用性レプリカの数の変更 可用性グループへのセカンダリ レプリカの追加 (SQL Server)

可用性グループへのセカンダリ レプリカの参加 (SQL Server)

可用性グループからのセカンダリ レプリカの削除 (SQL Server)
可用性グループ リスナーの作成 可用性グループ リスナーの作成または構成 (SQL Server)
可用性グループの削除 可用性グループの削除 (SQL Server)

可用性データベースの前提条件と制限

可用性グループに追加するデータベースは、次の前提条件と制限を満たしている必要があります。

このセクションの内容

チェック リスト:要件 (可用性データベース)

可用性グループに追加するデータベースは、次の条件を満たしている必要があります。

必要条件 Link
ユーザー データベースであること。 システム データベースを可用性グループに追加することはできません。
可用性グループの作成先となる SQL Server のインスタンス上に存在し、そのサーバー インスタンスからアクセスできること。
読み取り/書き込み可能なデータベースであること。 読み取り専用データベースを可用性グループに追加することはできません。 sys.databases (is_read_only = 0)
マルチユーザー データベースであること。 sys.databases (user_access = 0)
AUTO_CLOSE が使用されていないこと。 sys.databases (is_auto_close_on = 0)
完全復旧モデル (完全復旧モードとも呼ばれます) を使用すること。 sys.databases (recovery_model = 1)
データベースの完全バックアップが少なくとも 1 つ存在すること。

注:データベースを完全復旧モードに設定した後、完全復旧ログ チェーンを開始するには完全バックアップが必要です。
データベースの完全バックアップの作成 (SQL Server)
既存の可用性グループに属していないこと。 sys.databases (group_database_id = NULL)
データベース ミラーリング用に構成されていないこと。 sys.database_mirroring (データベースがミラー化の対象となっていない場合、"mirroring_" で始まるすべての列は NULL)
FILESTREAM を使用するデータベースを可用性グループに追加する前に、その可用性グループの可用性レプリカをホストしている (またはこれからホストする) すべてのサーバー インスタンスで FILESTREAM が有効になっていることを確認してください。 FILESTREAM の有効化と構成
包含データベースを可用性グループに追加する前に、その可用性グループの可用性レプリカをホストしている (またはこれからホストする) 各サーバー インスタンスで、 contained database authentication サーバー オプションが 1 に設定されていることを確認してください。 contained database authentication サーバー構成オプション

サーバー構成オプション (SQL Server)

注意

Always On 可用性グループ は、サポートされているすべてのデータベース互換性レベルで動作します。

制限事項 (可用性データベース)

  • セカンダリ データベースのファイル パス (ドライブ文字を含む) が、対応するプライマリ データベースのパスと異なる場合、次の制限が適用されます。

    • 新しい可用性グループ ウィザード/可用性グループへのデータベース追加ウィザード: [完全] オプションはサポートされません ([最初のデータの同期を選択] ページ)、

    • RESTORE WITH MOVE: セカンダリ データベースを作成するには、セカンダリ レプリカをホストする SQL Server の各インスタンス上で、WITH MOVE を使用してデータベース ファイルを復元する必要があります。

    • ファイルの追加操作への影響: 後でファイルの追加操作をプライマリ レプリカで実行した場合、セカンダリ データベースでエラーが発生する可能性があります。 この操作の失敗によってセカンダリ データベースが中断する可能性があります。 セカンダリ データベースが中断すると、セカンダリ レプリカが "NOT SYNCHRONIZING" 状態になります。

      注意

      ファイルの追加操作が失敗した場合の対処については、「失敗したファイルの追加操作のトラブルシューティング (Always On 可用性グループ)」を参照してください。

  • 可用性グループに現在属しているデータベースを削除することはできません。

TDE で保護されたデータベースの補足情報

透過的なデータ暗号化 (TDE) を使用する場合、他のキーの作成および暗号化解除を行うための証明書または非対称キーは、可用性グループの可用性レプリカをホストするすべてのサーバー インスタンスで同じである必要があります。 詳細については、「 別の SQL Server への TDE で保護されたデータベースの移動」を参照してください。

権限 (可用性データベース)

データベースに対する ALTER 権限が必要です。

タスク [アーティクル]
セカンダリ データベースの準備 (手動) 可用性グループに対するセカンダリ データベースの手動準備 (SQL Server)
可用性グループへのセカンダリ データベースの参加 (手動) 可用性グループへのセカンダリ データベースの参加 (SQL Server)
可用性データベースの数の変更 可用性グループへのデータベースの追加 (SQL Server)

可用性グループからのセカンダリ データベースの削除 (SQL Server)

可用性グループからのプライマリ データベースの削除 (SQL Server)

参照

AlwaysOn 可用性グループの概要 (SQL Server)
フェールオーバー クラスタリングと Always On 可用性グループ (SQL Server)
Always On クライアント接続 (SQL Server)