KB4537868 - 改善: SQL Server 2016 および 2019 FCI で DNN 機能を有効にする

適用先
SQL Server 2019 on Windows SQL Server 2016 SQL Server 2016 Service Pack 3 - duplicate (do not use)

機能強化

SQL Server 2019 および 2016 フェールオーバー クラスター インスタンス (FCI) リスナーは、Windows Server フェールオーバー クラスター (WSFC) 分散ネットワーク名 (DNN) アクセス ポイントと連携するように強化されています。

詳細情報

SQL Server フェールオーバー クラスター インスタンス (FCI) リスナーは、現在、Windows Server フェールオーバー クラスター (WSFC) ネットワーク名と仮想 IP アクセス ポイントと共にのみ機能します。 仮想 IP はAzure環境では機能しないため、この問題を回避するには、Azure内部Load Balancerを構成する必要があります (Azure内部Load Balancerを構成する方法を参照してください)。

この更新プログラムは、SQL Server クライアントが、Windows Server フェールオーバー クラスター内の分散ネットワーク名 (DNN) リソースを使用してロード バランサーなしで FCI に接続する別の方法を提供します。 DNN リソースが作成されると、WSFC は DNN DNS 名をクラスター内のすべてのノードの IP アドレスにバインドします。 SQL Server クライアントは、この一覧の各 IP アドレスを接続して、FCI が現在実行されているノードを見つけます。 SQL Server接続プロパティ MultiSubnetFailover が true の場合、すべての IP アドレスを並列に接続することで、この接続プロセスがさらに高速化されます。 これにより、SQL Server クライアントは現在実行中の FCI に即座に接続できます。

Azure内部Load Balancerを使用する前の回避策と比較して、DNN リスナー アプローチでは、ロード バランサーのライブネス プローブによって発生する追加のフェールオーバー待機時間を回避します。 既定では、このプロセスには 10 秒から 15 秒かかります。 (待機時間の計算方法については、このAzureドキュメントを参照してください)。ロード バランサー コンポーネントを構成して保守する必要はありません。 これにより、プロビジョニング プロセスが簡略化されます。 ロード バランサーを削除すると、失敗する可能性がある 1 つのコンポーネントも削除されます。 これにより、全体的な堅牢性が向上します。

この機能を使用するには、次の手順が必要です。

  1. インストールされている FCI の場合は、DNN リソースを作成し、その DNS 名を設定する必要があります。 管理者として次の 3 つの PowerShell コマンドを実行します。

    • Add-ClusterResource -Name <dnnResourceName> -ResourceType "Distributed Network Name" -Group "<WSFC role of SQL server instance>"
      Get-ClusterResource -Name <dnnResourceName> | Set-ClusterParameter -Name DnsName -Value <DNSName>
      Start-ClusterResource -Name <dnnResourceName>

    次に例を示します。

    • Add-ClusterResource -Name dnn-demo -ResourceType "Distributed Network Name" -Group "SQL Server (MSSQLSERVER)"
      Get-ClusterResource -Name dnn-demo |Set-ClusterParameter -Name DnsName -Value dnnlsnr
      Start-ClusterResource -Name dnn-demo

    説明:

    • 最初のコマンドは、リソース名に <dnnResourceName> を指定して、DNN リソースを WSFC に追加します。 リソース名は、WSFC リソースを一意に識別するために WSFC によって使用されます。 WSFC クラスター全体で一意の意味を持つものを使用します。 リソースの種類は、分散ネットワーク名である必要があります。 この DNN リソースが属するグループの名前は、DNN リソースを追加する FCI に対応する WSFC リソース グループ (ロール) である必要があります。 このグループ名の一般的な形式は"SQL Server (インスタンス名)" です。 したがって、既定のインスタンスの場合、名前は "SQL Server (MSSQLSERVER) になります。フェールオーバー クラスター マネージャー コンソールでグループの名前をチェックすることもできます。
    • 2 番目のコマンドは、この DNN リソースの DNS 名を設定します。 DNS 名は、クライアントが FCI に接続するために使用する名前であるため、重要です。
    • 3 番目のコマンドは DNN リソースを開始します。
      既定では、DNN DNS 名は WSFC 内のすべてのノードにバインドされます。 WSFC 内のすべてのノードが FCI に参加していない場合は、この FCI のノードのみを含むように DNN リソースの可能な所有者を構成します。
  2. インスタンスSQL Server再起動します。

  3. SQL クライアント 接続文字列のVirtual Network名 (VNN) を DNN DNS 名に置き換え、MultiSubnetFailover プロパティを "true" に設定します。SQL クライアントのバージョンが 4.6.1 より後の場合は、この設定をスキップできます。

解決策

この機能強化は、SQL Serverの次の累積的な更新プログラムに含まれています。

SQL Serverの累積的な更新プログラムについて:

SQL Serverの各新しい累積的な更新プログラムには、すべての修正プログラムと、以前の累積的な更新プログラムに含まれていたすべてのセキュリティ修正プログラムが含まれています。 SQL Serverの最新の累積的な更新プログラムを確認してください。

SQL Server 2016 のサービス パック情報

この問題は、SQL Serverの次の Service Pack で修正されています。

SQL Serverのサービス パックについて:

Service Pack は累積的であり、 最新の Service Pack には新しい修正プログラムと共に、それ以前の Service Pack に含まれていたすべての修正プログラムが含まれています。 最新の Service Pack とその Service Pack の最新の累積的な更新プログラムを適用することをお勧めします。 最新の Service Pack をインストールする前に、以前の Service Pack をインストールする必要はありません。 次の記事の表 1 を使用して、最新の Service Pack と最新の累積的な更新プログラムの詳細を確認します。

SQL Server とそのコンポーネントのバージョン、エディション、および更新プログラムのレベルを確認する

参考資料

マイクロソフトでソフトウェア更新プログラムの説明に使用する用語集を参照してください。