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)」を参照してください。

セキュリティ

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 可用性グループが無効

    Note

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

PowerShell の使用

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

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

  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. [スタート] メニューの [すべてのプログラム] をポイントし、[Microsoft SQL Server 2014] をポイントし、[構成ツール] をポイントして、[SQL Server 構成マネージャー] をクリックします。

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

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

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

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

    Note

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

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

例: Enable-SqlAlwaysOn

次の PowerShell コマンドを使用すると、SQL Server (コンピューター\インスタンス) のインスタンスで可用性グループを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. [スタート] メニューの [すべてのプログラム] をポイントし、[Microsoft SQL Server 2014] をポイントし、[構成ツール] をポイントして、[SQL Server 構成マネージャー] をクリックします。

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

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

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

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

SQL Server PowerShell の使用

AlwaysOn を無効にするには

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

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

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

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

    重要

    コマンドレットがSQL Server サービスを再起動するかどうかをDisable-SqlAlwaysOn制御する方法については、このトピックで後述する「コマンドレットが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)