次の方法で共有


サーバー インスタンスの HADR クラスター コンテキストの変更 (SQL Server)

このトピックでは、SQL Server 2012 SP1 以降のバージョンで Transact-SQL を使用して、SQL Serverのインスタンスの HADR クラスター コンテキストを切り替える方法について説明します。 HADR クラスター コンテキスト は、サーバー インスタンスによってホストされる可用性レプリカのメタデータを管理する Windows Server フェールオーバー クラスタリング (WSFC) クラスターを決定します。

ALWAYS ON可用性グループを新しい WSFC クラスター上の SQL Server 2012 SP1 のインスタンスにクラスター間で移行する場合にのみ、HADR クラスター コンテキストを切り替えます。 Always On可用性グループのクラスター間移行では、可用性グループのダウンタイムを最小限に抑えながら、Windows 8 または Windows Server 2012 への OS アップグレードがサポートされます。 詳細については、「OS アップグレードのための AlwaysOn 可用性グループのクラスター間での移行」を参照してください。

はじめに

注意事項

HADR クラスター コンテキストは、Always On可用性グループのデプロイのクラスター間移行中にのみ切り替えます。

制限事項と制約事項

  • HADR クラスター コンテキストの切り替えは、ローカル WSFC クラスターとリモート クラスター間でのみ実行できます。 リモート クラスター間で HADR クラスター コンテキストを切り替えることはできません。

  • HADR クラスター コンテキストは、SQL Server インスタンスが可用性レプリカをホストしていない場合のみリモート クラスターに切り替えることができます。

  • リモート HADR クラスター コンテキストは、いつでもローカル クラスターに切り替えることができます。 ただし、コンテキストは、サーバー インスタンスが可用性レプリカをホストしている限り、再度切り替えることはできません。

前提条件

  • HADR クラスター コンテキストを変更するサーバー インスタンスは、2012 SP1 以降 (Enterprise Edition 以降) SQL Server実行されている必要があります。

  • サーバー インスタンスで AlwaysOn が有効になっている必要があります。 詳細については、「AlwaysOn 可用性グループの有効化と無効化 (SQL Server)」を参照してください。

  • ローカル クラスター コンテキストからリモート クラスターに切り替えるための条件を満たすには、サーバー インスタンスで可用性レプリカをホストしていないことが必要です。 sys.availability_replicas カタログ ビューに行は返されません。

    サーバー インスタンス上に可用性レプリカが存在する場合は、HADR クラスター コンテキストを変更する前に、次のいずれかを実行する必要があります。

    レプリカのロール アクション Link
    プライマリ 可用性グループをオフラインにします。 可用性グループをオフラインにする (SQL Server)
    セカンダリ 可用性グループからセカンダリ レプリカを削除する 可用性グループからのセカンダリ レプリカの削除 (SQL Server)
  • リモート クラスターからローカル クラスターに切り替える前に、すべての同期コミット レプリカを SYNCHRONIZED にする必要があります。

推奨事項

  • 完全なドメイン名を指定することをお勧めします。 これは、短い名前のターゲット IP アドレスを検出するとき、ALTER SERVER CONFIGURATION は DNS 解決を使用するためです。 ある種の状況では、DNS の検索順序によっては、短い名前を使用すると混乱が生じる可能性があります。 たとえば、 abc ドメインのノード (node1.abc.com) で実行される次のコマンドを考慮してください。 目的のクラスターは、 CLUS01 ドメインの xyz クラスターです (clus01.xyz.com)。 ただし、ローカル ドメイン ホストも、CLUS01 という名前のクラスターをホストしています (clus01.abc.com)。

    ターゲット クラスターの短い名前である CLUS01を指定した場合、DNS の名前の解決で、違うクラスター ( clus01.abc.com) が返される可能性があります。 このような混乱を避けるには、次の例に示すように、ターゲット クラスターの完全な名前を指定します。

    ALTER SERVER CONFIGURATION SET HADR CLUSTER CONTEXT = 'clus01.xyz.com'  
    

セキュリティ

アクセス許可

  • SQL Server ログイン (SQL Server login)

    CONTROL SERVER 権限が必要です。

  • SQL Server サービス アカウント

    サーバー インスタンスの SQL Server サービス アカウントは、以下を所有している必要があります。

    • 宛先 WSFC クラスターを開く権限。

    • リモート WSFC 読み取り/書き込みアクセス。

Transact-SQL の使用

可用性レプリカの WSFC クラスター コンテキストを変更するには

  1. 可能性グループのプライマリ レプリカまたはセカンダリ レプリカをホストするサーバー インスタンスに接続します。

  2. 次に示すように、 ALTER SERVER CONFIGURATION ステートメントの SET HADR CLUSTER CONTEXT 句を使用します。

    ALTER SERVER CONFIGURATION SET HADR CLUSTER CONTEXT = { 'windows_cluster' |LOCAL }

    パラメーターの説明

    windows_cluster
    WSFC クラスターのクラスター オブジェクト名 (CON)。 短い名前または完全なドメイン名を指定できます。 完全なドメイン名を指定することをお勧めします。 詳細については、このトピックの「 推奨事項」を参照してください。

    LOCAL
    ローカル WSFC クラスター。

次の例では、HADR クラスター コンテキストを別のクラスターに変更します。 変更先の WSFC クラスターである clus01を識別するため、この例では、完全なクラスター オブジェクト名である clus01.xyz.comを指定します。

ALTER SERVER CONFIGURATION SET HADR CLUSTER CONTEXT = 'clus01.xyz.com';  

次の例では、HADR クラスター コンテキストをローカル WSFC クラスターに変更します。

ALTER SERVER CONFIGURATION SET HADR CLUSTER CONTEXT = LOCAL;  

補足情報: 可用性レプリカのクラスター コンテキストの切り替え後

新しい HADR クラスター コンテキストは、サーバー インスタンスの再起動なしですぐに有効になります。 HADR クラスター コンテキスト設定は、サーバー インスタンスが再起動した場合でも変更されない永続的なインスタンス レベルの設定です。

次に示すように、 sys.dm_hadr_cluster 動的管理ビューをクエリすることで、新しい HADR クラスター コンテキストを確認します。

SELECT cluster_name FROM sys.dm_hadr_cluster  

このクエリは、HADR クラスター コンテキストを設定するクラスターの名前を返します。

HADR クラスター コンテキストが新しいクラスターに切り替わるとき:

  • SQL Serverインスタンスによって現在ホストされている可用性レプリカのメタデータがクリーンアップされます。

  • 可用性レプリカに所属していたすべてのデータベースが、RESTORING 状態になります。

Related Tasks

関連コンテンツ

参照

AlwaysOn 可用性グループ (SQL Server)SQL Serverを使用した Windows Server フェールオーバー クラスタリング (WSFC)
ALTER SERVER CONFIGURATION (Transact-SQL)