次の方法で共有


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

Applies to:SQL Server

Always On可用性グループを作成して構成する前に、可用性レプリカをホストするSQL Serverの各インスタンスでAlways On可用性グループ機能を有効にする必要があります。

重要

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

前提条件

  • SQL Server 2016 (13.x) では、可用性グループ機能を有効にするには、インスタンスが Windows Server フェールオーバー クラスター (WSFC) ノードに存在する必要があります。

  • SQL Server 2017 (14.x) 以降のバージョンでは、read-scale 可用性グループをサポートするために、SQL Server インスタンスが Windows Server フェールオーバー クラスターに存在しない場合でも可用性グループ機能を有効にすることができます。

  • サーバー インスタンスは、可用性グループをサポートするエディションのSQL Server Always On実行する必要があります。 詳細については、「Editions and supported features of SQL Server 2025 を参照してください。

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

  • 詳細については、Always On 可用性グループ (SQL Server) の前提条件、制限事項、および推奨事項 を参照してください。

アクセス許可

SQL Serverのインスタンスで可用性グループを有効にすると、サーバー インスタンスは WSFC クラスターを完全に制御できます。

ローカル コンピューターの Administrator グループのメンバーであり、WSFC クラスターを完全に制御する必要があります。 PowerShell で可用性グループを有効にする場合は、[ 管理者として実行 ] オプションを使用してコマンド プロンプト ウィンドウを開きます。

Active Directoryオブジェクトの作成およびManage オブジェクトアクセス許可が必要です。

機能が有効になっているかどうかを確認する

SQL Server Management Studio (SSMS)、Transact-SQL、または PowerShell を使用して、可用性グループ機能が有効になっているかどうかを確認できます。

SQL Server Management Studioを使用する

  1. SQL Server Management Studio (SSMS) で、Object Explorerでサーバー インスタンスを右クリックし、 Properties を選択します。

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

    • True (可用性グループが有効な場合)
    • False (可用性グループが無効になっている場合)。

Transact-SQL の使用

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

SELECT SERVERPROPERTY('IsHadrEnabled');

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

  • IsHadrEnabled は、可用性グループが有効になっている場合は 1
  • IsHadrEnabled0されます (可用性グループが無効になっている場合)。

注意

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

PowerShell の使用

  1. サーバーインスタンスで、「Always On 可用性グループ」が有効であるかどうかを確認したい場合、ディレクトリ (cd) を変更します。

  2. Get-Item プロンプトで、次の PowerShell SQLSERVER:\SQL\NODE1\DEFAULT コマンドを入力します。

    Get-Item . | Select-Object IsHadrEnabled
    

    注意

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

SQL Server PowerShell プロバイダーを設定して使用するには、SQL Server PowerShell プロバイダーを参照してください。

機能の有効化

可用性グループ機能は、SQL Server Management Studio (SSMS) または PowerShell を使用して有効にすることができます。

SQL Server Management Studioで有効にする

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

  2. Start メニューで、 All Programs をポイントし、Microsoft SQL Server をポイントし、Configuration Tools をポイントして、SQL Server Configuration Manager を選択します。

  3. SQL Server Configuration Managerで、SQL Server Services を選択し、SQL Server (<instance name>) を右クリックします。 < インスタンス名>は、可用性グループを有効にするローカル サーバー インスタンスの名前です。 プロパティを選択します。

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

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

  6. Always On 可用性グループを有効にする チェック ボックスをオンにし、OK を選択します。

    SQL Server Configuration Manager変更を保存します。 その後、SQL Server サービスを手動で再起動する必要があります。 この手順では、ビジネス要件に最も適した再起動時間を選択できます。 SQL Server サービスが再起動されると、可用性グループが有効になり、IsHadrEnabled サーバー プロパティが 1 に設定されます。

PowerShell を使用した有効化

  1. 可用性グループを有効にするサーバー インスタンスにディレクトリ (cd) を変更します。

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

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

    注意

    Enable-SqlAlwaysOn コマンドレットがSQL Server サービスを再起動するかどうかを制御する方法については、「コマンドレットがSQL Server サービスを再起動する場合は」を参照してください。

SQL Server PowerShell プロバイダーを設定して使用するには、SQL Server PowerShell プロバイダーを参照してください。

例: Enable-SqlAlwaysOn

次の PowerShell コマンドを使用すると、SQL Server (<computer>\<Instance>) のインスタンスで可用性グループをAlways Onできます。

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

機能を無効にする

SQL Server Configuration Managerまたは PowerShell を使用して可用性グループ機能を無効にするには、次のセクションを使用します。 無効化操作を完了すると、必要なフォローアップ タスクを実行できます。

重要

一度に 1 つのサーバー インスタンスでのみ可用性グループ機能を無効にします。 Always On可用性グループを無効にした後、SQL Server サービスが再起動するまで待ってから、別のサーバー インスタンスに進みます。

推奨事項

サーバー インスタンスで可用性グループ機能を無効にする前に、次の手順を実行します。

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

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

SQL Server Configuration Managerで無効にする

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

  2. Start メニューで、 All Programs をポイントし、Microsoft SQL Server をポイントし、Configuration Tools をポイントして、SQL Server Configuration Manager を選択します。

  3. SQL Server Configuration Managerで、SQL Server Services を選択し、SQL Server (<instance name>) を右クリックします。 < インスタンス名>は、可用性グループを無効にするローカル サーバー インスタンスの名前です。 プロパティを選択します。

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

    SQL Server Configuration Manager変更を保存し、SQL Server サービスを再起動します。 SQL Server サービスが再起動すると、可用性グループが無効になり、機能が無効になっていることを示すために、IsHadrEnabled サーバー プロパティが 0 に設定されます。

  5. この記事の後半の 「補足情報」の情報をお読みください。

PowerShell で無効にする

  1. 可用性グループを無効にする現在有効なサーバー インスタンスにディレクトリ (cd) を変更します。

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

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

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

    重要

    Disable-SqlAlwaysOn コマンドレットがSQL Server サービスを再起動するかどうかを制御する方法については、「コマンドレットがSQL Server サービスを再起動する場合は」を参照してください。

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

SQL Server PowerShell プロバイダーを設定して使用するには、SQL Server PowerShell プロバイダーを参照してください。

可用性グループを無効にした後のフォローアップ

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

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

  • 可用性データベースは起動時に起動せず、SQL Serverアクセスできなくなります。

  • サポートされている可用性グループ Transact-SQL ステートメントは DROP AVAILABILITY GROUP だけです。 CREATE AVAILABILITY GROUPALTER AVAILABILITY GROUP、およびSET HADRALTER DATABASEオプションはサポートされていません。

  • WSFC のSQL ServerメタデータとAlways On可用性グループの構成データは、可用性グループを無効にしても影響を受けません。

1 つ以上の可用性グループの可用性レプリカをホストするすべてのサーバー インスタンスで可用性グループを完全に無効にする場合は、次の手順を実行します。

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

  2. メタデータを削除するには、元の WSFC の一部であるサーバー インスタンスで、影響を受ける各可用性グループを削除(ドロップ)します。

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

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

コマンドレットが SQL Server サービスを再起動するタイミング

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

-NoServiceRestart 指定されたパラメーター -Force 指定されたパラメーター SQL Server サービスが再起動されました
いいえ いいえ 默认では。 両方のパラメーターが指定されているかどうかを参照してください
いいえ はい サービスは再起動されます。
はい いいえ サービスは再起動されません。
はい はい サービスは再起動されません。

両方のパラメーターが指定されている場合

-NoServiceRestartパラメーターと-Forceパラメーターの両方を指定すると、次のようにプロンプトが表示されます (既定値はY)。

To complete this action, we must restart the SQL Server service for server instance '<instance_name>'. Do you want to continue?

[Y] Yes [N] No [S] Suspend [?] Help

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