適用対象: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) 以降のバージョンでは、 読み取りスケール可用性グループをサポートするために、SQL Server インスタンスが Windows Server フェールオーバー クラスターに存在しない場合でも可用性グループ機能を有効にすることができます。
サーバー インスタンスは、Always On 可用性グループをサポートする SQL Server のエディションを実行する必要があります。 詳細については、「 SQL Server 2025 のエディションとサポートされている機能」を参照してください。
一度に 1 つのサーバー インスタンスでのみ可用性グループを有効にします。 可用性グループを有効にした後、SQL Server サービスが再起動するまで待ってから、別のサーバー インスタンスに進みます。
詳細については、「Always On 可用性グループの前提条件、制限事項、および推奨事項 (SQL Server)」を参照してください。
アクセス許可
SQL Server のインスタンスで可用性グループを有効にすると、サーバー インスタンスは WSFC クラスターを完全に制御できます。
ローカル コンピューターの Administrator グループのメンバーであり、WSFC クラスターを完全に制御する必要があります。 PowerShell で可用性グループを有効にする場合は、[ 管理者として実行 ] オプションを使用してコマンド プロンプト ウィンドウを開きます。
Active Directory のオブジェクトの作成とオブジェクトの管理のアクセス許可が必要です。
機能が有効になっているかどうかを確認する
SQL Server Management Studio (SSMS)、Transact-SQL、または PowerShell を使用して、可用性グループ機能が有効になっているかどうかを確認できます。
SQL Server Management Studio を使用します。
SQL Server Management Studio (SSMS) のオブジェクト エクスプローラーで、サーバー インスタンスを右クリックし、[ プロパティ] を選択します。
[ サーバーのプロパティ ] ダイアログ ボックスで、[ 全般 ] ページを選択します。 [HADR が有効] プロパティに、次のいずれかの値が表示されます。
- True (可用性グループが有効な場合)
- False (可用性グループが無効になっている場合)。
Transact-SQL の使用
次の SERVERPROPERTY ステートメントを使用します。
SELECT SERVERPROPERTY('IsHadrEnabled');
IsHadrEnabled サーバー プロパティの設定は、次のように、SQL Server のインスタンスが可用性グループに対して有効になっているかどうかを示します。
-
IsHadrEnabledは、可用性グループが有効になっている場合は1。 -
IsHadrEnabledは0されます (可用性グループが無効になっている場合)。
注意
IsHadrEnabled サーバー プロパティの詳細については、「SERVERPROPERTY」を参照してください。
PowerShell の使用
Always On 可用性グループが有効になっているかどうかを判断するサーバー インスタンスにディレクトリ (
cd) を変更します。Get-Itemプロンプトで、次の PowerShellSQLSERVER:\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 で有効にする
可用性グループを有効にする SQL Server インスタンスをホストする Windows Server フェールオーバー クラスター (WSFC) ノードに接続します。
[スタート] メニューの [すべてのプログラム] をポイントし、Microsoft SQL Server をポイントし、[構成ツール] をポイントして、[SQL Server 構成マネージャー] を選択します。
SQL Server 構成マネージャーで、SQL Server サービスを選択し、SQL Server (<インスタンス名>) を右クリックします。 < インスタンス名>は、可用性グループを有効にするローカル サーバー インスタンスの名前です。 プロパティを選択します。
[AlwaysOn 高可用性] タブを選択します。
Windows フェールオーバー クラスター名フィールドにローカル フェールオーバー クラスターの名前が含まれていることを確認します。 このフィールドが空白の場合、このサーバー インスタンスは現在、Always On 可用性グループをサポートしていません。 ローカル コンピューターがクラスター ノードではないか、WSFC クラスターがシャットダウンされているか、SQL Server のこのエディションでは Always On 可用性グループがサポートされていません。
[ Always On 可用性グループを有効にする ] チェック ボックスをオンにし、[ OK] を選択します。
SQL Server 構成マネージャーによって変更内容が保存されます。 その後、 SQL Server サービスを手動で再起動する必要があります。 この手順では、ビジネス要件に最も適した再起動時間を選択できます。 SQL Server サービスが再起動すると、可用性グループが有効になり、
IsHadrEnabledサーバー プロパティが1に設定されます。
PowerShell を使用した有効化
可用性グループを有効にするサーバー インスタンスにディレクトリ (
cd) を変更します。可用性グループを 有効にするには、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 サービスが再起動するまで待ってから、別のサーバー インスタンスに進みます。
推奨事項
サーバー インスタンスで可用性グループ機能を無効にする前に、次の手順を実行します。
サーバー インスタンスが現在、保持する可用性グループのプライマリ レプリカをホストしている場合は、可能であれば、可用性グループを同期されたセカンダリ レプリカに手動でフェールオーバーします。 詳細については、「可用性グループの計画的な手動フェールオーバーの実行 (SQL Server)」を参照してください。
ローカル セカンダリ レプリカをすべて削除します。 詳細については、「可用性グループからのセカンダリ レプリカの削除 (SQL Server)」を参照してください。
SQL Server Configuration Manager で無効にする
可用性グループを無効にする SQL Server インスタンスをホストする Windows Server フェールオーバー クラスター (WSFC) ノードに接続します。
[スタート] メニューの [すべてのプログラム] をポイントし、Microsoft SQL Server をポイントし、[構成ツール] をポイントして、[SQL Server 構成マネージャー] を選択します。
SQL Server 構成マネージャーで、SQL Server サービスを選択し、SQL Server (<インスタンス名>) を右クリックします。 < インスタンス名>は、可用性グループを無効にするローカル サーバー インスタンスの名前です。 プロパティを選択します。
[ Always On 高可用性 ] タブで、[ Always On 可用性グループを有効にする ] チェック ボックスをオフにして、[OK] を選択 します。
SQL Server 構成マネージャーによって変更内容が保存され、SQL Server サービスが再起動されます。 SQL Server サービスが再起動すると、可用性グループが無効になり、 IsHadrEnabled サーバー プロパティが
0に設定され、機能が無効になっていることを示します。この記事の後半の 「補足情報」の情報をお読みください。
PowerShell で無効にする
可用性グループを無効にする現在有効なサーバー インスタンスにディレクトリ (
cd) を変更します。可用性グループを無効にするには、
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 構成マネージャーによって自動的に再起動されます。 ただし、 Disable-SqlAlwaysOn コマンドレットを使用する場合は、サーバー インスタンスを手動で再起動する必要があります。 詳細については、「 sqlservr Application」を参照してください。
再起動後のサーバー インスタンスに該当する状況を以下に示します。
可用性データベースは SQL Server の起動時に起動しないため、アクセスできなくなります。
サポートされている可用性グループ Transact-SQL ステートメントは DROP AVAILABILITY GROUP だけです。
CREATE AVAILABILITY GROUP、ALTER AVAILABILITY GROUP、およびSET HADRのALTER DATABASEオプションはサポートされていません。WSFC の SQL Server メタデータと Always On 可用性グループ構成データは、可用性グループを無効にしても影響を受けません。
1 つ以上の可用性グループの可用性レプリカをホストするすべてのサーバー インスタンスで可用性グループを完全に無効にする場合は、次の手順を実行します。
可用性グループを無効にする前にローカル可用性レプリカを削除しなかった場合は、サーバー インスタンスが可用性レプリカをホストしている各可用性グループを削除 (削除) します。 可用性グループの削除については、「可用性グループの削除 (SQL Server)」を参照してください。
メタデータを削除するには、元の WSFC の一部であるサーバー インスタンスで、影響を受ける各可用性グループを削除(ドロップ)します。
プライマリ データベースには引き続きすべての接続からアクセスできますが、プライマリ データベースとセカンダリ データベース間のデータの同期は中止されます。
セカンダリ データベースは、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 を指定した場合、サービスは再起動されません。