Always On 可用性グループ機能を有効または無効にする

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

サーバー インスタンスで可用性グループを使用するには、 Always On 可用性グループ を有効にする必要があります。 可用性グループを作成したり構成したりするためには、少なくとも 1 つの可用性グループの可用性レプリカがホストされる Always On 可用性グループ の各インスタンスで SQL Server 機能が有効になっている必要があります。

重要

WSFC クラスターを削除してから再作成した場合は、元の WSFC クラスター上の可用性レプリカをホストしていた Always On 可用性グループ の各インスタンスについて、 SQL Server 機能を無効にしてから再度有効にする必要があります。

AlwaysOn 可用性グループを有効にするための前提条件

  • このサーバー インスタンスは、Windows Server フェールオーバー クラスタリング (WSFC) ノードに存在している必要があります。

  • Always On 可用性グループをサポートする SQL Server エディションが実行されている必要があります。 詳細については、「 SQL Server 2016 の各エディションがサポートする機能」を参照してください。

  • 一度に 1 つのサーバー インスタンスでのみ AlwaysOn 可用性グループを有効にします。 AlwaysOn 可用性グループを有効にした後は、SQL Server サービスが再起動するまで待ってから、次のサーバー インスタンスを有効にしてください。

可用性グループの作成と構成に関するその他の前提条件については、「AlwaysOn 可用性グループの前提条件、制限事項、推奨事項 (SQL Server)」を参照してください。

Permissions

SQL Serverのインスタンス上で AlwaysOn 可用性グループが有効になっている限り、そのサーバー インスタンスには、WSFC クラスターに対するフル コントロール権限があります。

ローカル コンピューターの Administrator グループのメンバーシップおよび WSFC クラスターに対するフル コントロール権限が必要です。 PowerShell を使用して AlwaysOn を有効にする場合は、 [管理者として実行] オプションを使用してコマンド プロンプト ウィンドウを開いてください。

Active Directory の Create Objects 権限と Manage Objects 権限が必要です。

AlwaysOn 可用性グループが有効になっているかどうかを確認する

SQL Server Management Studio の使用

AlwaysOn 可用性グループが有効になっているかどうかを調べるには

  1. オブジェクト エクスプローラーでサーバー インスタンスを右クリックし、 [プロパティ] をクリックします。

  2. [サーバーのプロパティ] ダイアログ ボックスの [全般] ページをクリックします。 [HADR が有効] プロパティに、次のいずれかの値が表示されます。

    • True(AlwaysOn 可用性グループが有効である場合)

    • False(AlwaysOn 可用性グループが無効である場合)

Transact-SQL の使用

AlwaysOn 可用性グループが有効になっているかどうかを調べるには

  1. 次の SERVERPROPERTY ステートメントを使用します。

    SELECT SERVERPROPERTY ('IsHadrEnabled');  
    

    IsHadrEnabled サーバー プロパティの設定は、 SQL Server のインスタンスに対して AlwaysOn 可用性グループが有効であるかどうかを示します。

    • IsHadrEnabled = 1 の場合: AlwaysOn 可用性グループが有効

    • IsHadrEnabled = 0 の場合: AlwaysOn 可用性グループが無効

    注意

    IsHadrEnabled サーバー プロパティの詳細については、「SERVERPROPERTY (Transact-SQL)」を参照してください。

PowerShell の使用

AlwaysOn 可用性グループが有効になっているかどうかを調べるには

  1. が有効であるかどうかを確認するサーバー インスタンスを既定の操作対象に設定 ( cd Always On 可用性グループ ) します。

  2. PowerShell コマンド Get-Item を入力します。

    PS SQLSERVER:\SQL\NODE1\DEFAULT> get-item . | select IsHadrEnabled  
    

    注意

    コマンドレットの構文を表示するには、 PowerShell 環境で Get-Help SQL Server コマンドレットを使用します。 詳細については、「 Get Help SQL Server PowerShell」を参照してください。

SQL Server PowerShell プロバイダーを設定して使用するには

AlwaysOn 可用性グループを有効にする

AlwaysOn を有効にする場合に使用するツール:

SQL Server 構成マネージャーの使用

Always On 可用性グループを有効にするには

  1. 対象の (AlwaysOn 可用性グループを有効にする) SQL Server インスタンスがホストされている Windows Server フェールオーバー クラスター (WSFC) ノードに接続します。

  2. [スタート] ボタンをクリックし、 [すべてのプログラム] 、[ Microsoft SQL Server]、 [構成ツール] の順にポイントして、 [SQL Server 構成マネージャー] をクリックします。

  3. SQL Server 構成マネージャー で、 [SQL Server のサービス] をクリックし、[SQL Server ( <instance name>) ] を右クリックして、 [プロパティ] をクリックします。 <instance name> は、Always On 可用性グループを有効にするローカル サーバー インスタンスの名前です。

  4. [AlwaysOn 高可用性] タブを選択します。

  5. [Windows フェールオーバー クラスター名] フィールドに、ローカル フェールオーバー クラスターの名前が表示されていることを確認します。 このフィールドが空白の場合、このサーバー インスタンスは現在 Always On 可用性グループをサポートしていません。 ローカル コンピューターがクラスター ノードではないか、WSFC クラスターがシャットダウンされています。または、このエディションの SQL Server では Always On 可用性グループがサポートされません。

  6. [AlwaysOn 可用性グループを有効にする] チェック ボックスをオンにし、 [OK] をクリックします。

    SQL Server 構成マネージャーによって変更内容が保存されます。 その後、 SQL Server サービスを手動で再起動する必要があります。 業務上の要件に合った時間帯を選んで再起動することができます。 SQL Server サービスが再起動されると、AlwaysOn が有効になり、 IsHadrEnabled サーバー プロパティが 1 に設定されます。

SQL Server PowerShell の使用

AlwaysOn を有効にするには

  1. ディレクトリ変更コマンド (cd) を使用して、AlwaysOn 可用性グループを有効にするサーバー インスタンスに移動します。

  2. AlwaysOn 可用性グループを有効にするには、Enable-SqlAlwaysOn コマンドレットを使用します。

    コマンドレットの構文を表示するには、 PowerShell 環境で Get-Help SQL Server コマンドレットを使用します。 詳細については、「 Get Help SQL Server PowerShell」を参照してください。

    注意

    Enable-SqlAlwaysOn コマンドレットを実行したときに SQL Server サービスを再起動するかどうかを制御する方法については、このトピックの「SQL Server サービスがコマンドレットによって再起動される条件」を参照してください。

SQL Server PowerShell プロバイダーを設定して使用するには

例: Enable-SqlAlwaysOn

次の PowerShell コマンドは、SQL Server のインスタンス ( Always On 可用性グループ Computer Instance\ ) の を有効にします。

Enable-SqlAlwaysOn -Path SQLSERVER:\SQL\Computer\Instance  

AlwaysOn 可用性グループを無効にする

重要

AlwaysOn を無効にできるサーバー インスタンスは一度に 1 つだけです。 AlwaysOn 可用性グループを無効にした後は、 SQL Server サービスが再起動するまで待ってから、次のサーバー インスタンスを有効にしてください。

推奨事項

サーバー インスタンスで AlwaysOn を無効にする前に、次の操作を行うことをお勧めします。

  1. 保持する可用性グループのプライマリ レプリカをサーバー インスタンスがホスト中の場合は、同期されたセカンダリ レプリカに可用性グループを手動でフェールオーバーすることをお勧めします (可能な場合)。 詳細については、「可用性グループの計画的な手動フェールオーバーの実行 (SQL Server)」を参照してください。

  2. ローカル セカンダリ レプリカをすべて削除します。 詳細については、「可用性グループからのセカンダリ レプリカの削除 (SQL Server)」を参照してください。

SQL Server 構成マネージャーの使用

AlwaysOn を無効にするには

  1. 対象の (AlwaysOn 可用性グループを無効にする) SQL Server インスタンスがホストされている Windows Server フェールオーバー クラスター (WSFC) ノードに接続します。

  2. [スタート] ボタンをクリックし、 [すべてのプログラム] 、[ Microsoft SQL Server]、 [構成ツール] の順にポイントして、 [SQL Server 構成マネージャー] をクリックします。

  3. SQL Server 構成マネージャー で、 [SQL Server のサービス] をクリックし、[SQL Server ( <instance name>) ] を右クリックして、 [プロパティ] をクリックします。 <instance name> は、Always On 可用性グループを無効にするローカル サーバー インスタンスの名前です。

  4. [Always On 高可用性] タブで、 [Always On 可用性グループを有効にする] チェック ボックスをオフにし、 [OK] をクリックします。

    SQL Server 構成マネージャーによって変更内容が保存され、 SQL Server サービスが再起動されます。 SQL Server サービスが再起動すると、AlwaysOn が無効になり、 IsHadrEnabled サーバー プロパティは、AlwaysOn 可用性グループが無効であることを示す 0 に設定されます。

  5. このトピックの「 補足情報: Always On を無効にした後」を読むことをお勧めします。

SQL Server PowerShell の使用

AlwaysOn を無効にするには

  1. ディレクトリ変更コマンド (cd) を使用して、AlwaysOn 可用性グループを無効にするサーバー インスタンスに移動します。

  2. AlwaysOn 可用性グループを無効にするには、Disable-SqlAlwaysOn コマンドレットを使用します。

    たとえば、次のコマンドは、SQL Server インスタンス (Computer\Instance) の AlwaysOn 可用性グループを無効にします。 このコマンドの場合、インスタンスを再起動する必要があり、再起動するかどうかを確認するメッセージが表示されます。

    Disable-SqlAlwaysOn -Path SQLSERVER:\SQL\Computer\Instance  
    

    重要

    Disable-SqlAlwaysOn コマンドレットを実行したときに SQL Server サービスを再起動するかどうかを制御する方法については、このトピックの「SQL Server サービスがコマンドレットによって再起動される条件」を参照してください。

    コマンドレットの構文を表示するには、 PowerShell 環境で Get-Help SQL Server コマンドレットを使用します。 詳細については、「 Get Help SQL Server PowerShell」を参照してください。

SQL Server PowerShell プロバイダーを設定して使用するには

補足情報: Always On を無効にした後

AlwaysOn 可用性グループを無効にした後、 SQL Server インスタンスを無効にする必要があります。 サーバー インスタンスは、SQL 構成マネージャーによって自動的に再起動されます。 ただし、Disable-SqlAlwaysOn コマンドレットを使用した場合は、サーバー インスタンスを手動で再起動する必要があります。 詳細については、「 sqlservr Application」を参照してください。

再起動後のサーバー インスタンスに該当する状況を以下に示します。

  • SQL Server の起動時に可用性データベースは開始されず、アクセス不能となります。

  • サポートされる AlwaysOn Transact-SQL ステートメントは DROP AVAILABILITY GROUPのみとなります。 CREATE AVAILABILITY GROUP と ALTER AVAILABILITY GROUP、および ALTER DATABASE の SET HADR オプションはサポートされません。

  • SQL Server AlwaysOn 可用性グループを無効にしても、WSFC 内の Always On 可用性グループ の構成データと のメタデータにその影響が及ぶことはありません。

1 つまたは複数の可用性グループの可用性レプリカをホストするすべてのサーバー インスタンスで AlwaysOn 可用性グループを永続的に無効にする場合は、次の手順を完了することをお勧めします。

  1. AlwaysOn を無効にする前にローカル可用性レプリカを削除しなかった場合は、サーバー インスタンスが可用性レプリカをホストしている可用性グループを削除します。 可用性グループの削除については、「可用性グループの削除 (SQL Server)」を参照してください。

  2. 残されたメタデータを除去するには、元の WSFC の一部であるサーバー インスタンスから影響を受ける可用性グループをそれぞれ削除します。

  3. プライマリ データベースには引き続きすべての接続からアクセスできますが、プライマリ データベースとセカンダリ データベース間のデータの同期は中止されます。

  4. セカンダリ データベースは、RESTORING 状態に入ります。 これらは削除するか、RESTORE WITH RECOVERY を使用して復元できます。 ただし、復元されたデータベースは、それ以降、可用性グループのデータの同期対象とはなりません。

SQL Server サービスがコマンドレットによって再起動される条件

現在実行中のサーバー インスタンスで、Enable-SqlAlwaysOn または Disable-SqlAlwaysOn を使用して現在の AlwaysOn 設定を変更すると、SQL Server サービスが再起動されます。 再起動の動作は次の条件によって異なります。

-NoServiceRestart パラメーターの指定 -Force パラメーターの指定 SQL Server サービスの再起動
いいえ いいえ 既定では再起動されます。 ただし、次のプロンプトが表示されます。

このアクションを完了するには、サーバー インスタンス '<instance_name>' の SQL Server サービスを再起動する必要があります。続行しますか?

[Y] はい [N] いいえ [S] 中断 [?] ヘルプ (既定値は "Y"):

N または S を指定した場合、サービスは再起動されません。
いいえ はい サービスは再起動されます。
はい いいえ サービスは再起動されません。
はい はい サービスは再起動されません。

参照

AlwaysOn 可用性グループの概要 (SQL Server)
SERVERPROPERTY (Transact-SQL)