AlwaysOn 可用性グループの有効化と無効化 (SQL Server)

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

重要

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

始める前に

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

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

  • サーバー インスタンスは、Always On 可用性グループをサポートする SQL Server のエディションを実行している必要があります。 詳しくは「 Features Supported by the Editions of SQL Server 2014」をご覧ください。

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

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

セキュリティ

ALWAYSOn 可用性グループが SQL Server のインスタンスで有効になっている間、サーバー インスタンスは 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 可用性グループが無効

    Note

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

PowerShell の使用

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

  1. Always On 可用性グループが有効になっているかどうかを判断するサーバー インスタンス (\SQL\NODE1\DEFAULT など) に既定値 (cd) を設定します。

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

    Get-Item . | Select IsHadrEnabled  
    

    Note

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

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

AlwaysOn 可用性グループの有効化

AlwaysOn を有効にするには、次を使用します。

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

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

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

  2. [Start メニューの All Programs をポイントし、Microsoft SQL Server 2014 をポイントし、Configuration Tools をポイントして、SQL Server 構成マネージャーをクリックします。

  3. SQL Server 構成マネージャーで、[SQL Server Services をクリックし、SQL Server (<instance name>)を右クリックします。ここで、<instance name>は AlwaysOn 可用性グループを有効にするローカル サーバー インスタンスの名前を指定し、Properties をクリックします。

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

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

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

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

SQL Server PowerShell の使用

AlwaysOn を有効にするには

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

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

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

    Note

    Enable-SqlAlwaysOn コマンドレットが SQL Server サービスを再起動するかどうかを制御する方法については、「コマンドレットが SQL Server サービスを再起動するタイミング」を参照。このトピックの後半を参照してください。

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

例: Enable-SqlAlwaysOn

次の PowerShell コマンドを使用すると、SQL Server (Computer\Instance) のインスタンスで Always On 可用性グループが有効になります。

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. [Start メニューの All Programs をポイントし、Microsoft SQL Server 2014 をポイントし、Configuration Tools をポイントして、SQL Server 構成マネージャーをクリックします。

  3. SQL Server 構成マネージャーSQL Server Servicesをクリックし、SQL Server (<instance name>)を右クリックします。ここで、<instance name>は AlwaysOn 可用性グループを無効にするローカル サーバー インスタンスの名前を指定し、[Properties をクリックします。

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

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

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

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 サービスを再起動するタイミング」を参照。このトピックの後半を参照してください。

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

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

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

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 オプションはサポートされません。

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

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 サービスを再起動する必要があります。 Do you want to continue? (続行してもよろしいですか?)

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

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

参照

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