DataKeeper Cluster Editionのインストール
次の手順に進む前に、SQL1およびSQL2にDataKeeper Cluster Editionをインストールする必要があります。DataKeeperインストーラーをダウンロードし、両方のノードでDataKeeperセットアップを実行します。インストールに関する具体的なガイダンスについては、 SIOS documentation を参照してください。
DataKeeperボリュームリソースの作成
いずれかのクラスタノードでDataKeeper UIを起動し、次に示すようにDataKeeperボリュームリソースを作成します。
両方のサーバ (最初にSQL1、次にSQL2) に接続します。
両方のサーバーに接続し、ストレージが正しく構成されている場合、サーバー概要レポートは次のようになります。
[ジョブの作成] をクリックして、ジョブ作成ウィザードを起動します。
DataKeeperは、同期レプリケーションと非同期レプリケーションの両方をサポートします。同じリージョン内のアベイラビリティゾーン間のレプリケーションの場合は、同期を選択します。リージョンまたはクラウドプロバイダー間でレプリケートする場合は、非同期を選択します。
ここで「YES」をクリックして、DataKeeperボリュームリソースをクラスター内の使用可能なストレージに登録します。
DataKeeperボリュームDがフェイルオーバークラスターマネージャーの [使用可能な記憶域] に表示されます。
SQL1にSQL Server FCIをインストールする
クラスターが作成され、DataKeeperボリュームリソースがAvailable Storageとなったため、クラスターノードのひとつにSQL Serverをインストールします。前述のように、この例ではSQL 2019とWindows 2022を使用したクラスター構成を示していますが、展開しようとしているWindows ServerまたはSQL Serverのバージョンに関係なく、この例で説明されているすべての手順は実質的に同じです。
次の例に従って、SQL1にSQL Serverをインストールします。
以下に指定する名前は、クライアントアクセスポイントです。これは、アプリケーションサーバーがSQL Server FCIに接続するときに使用する名前です。
この画面では、このシリーズの Part 1 の計画セクションで特定したSQL1セカンダリーIPアドレスを追加します。
この例では、tempdbをDドライブに残しました。ただし、最適なパフォーマンスを得るには、レプリケートされていないボリュームにtempdbを配置することをお勧めします。
SQL2をSQL Server Failover Clusterに追加する
ここで、SQL2にSQL Serverをインストールします。
両方のクラスターノードにSQL Serverをインストールすると、フェイルオーバークラスターマネージャーは次のようになります。
SQL Server Management Studioのインストール
SQL Serverバージョン2016以降では、次に示すように、SSMSを別のオプションとしてダウンロードしてインストールする必要があります。 注意: 以前のバージョンのSQL Serverでは、SQL Server Management Studio (SSMS) はSQLのインストール時にオプションとしてインストールできます。
SSMSをインストールしたら、クライアントアクセスポイント経由でクラスターに接続します。SQL Server FCIは次のようになります。
マルチサブネットの考慮事項
OCIでSQL Server FCIを実行する場合の最大の考慮事項の1つは、クラスターノードが異なるサブネットに存在することです。Microsoftは、 Microsoftドキュメント で説明されているように、Windows Server 2008 R2に「OR」機能を追加することで、クラスタノードが異なるサブネットに存在する可能性があるという事実に対応し始めました。
SQL Server Multi-Subnet Clustering (SQL Server) より引用
ドキュメントで説明されている重要なことは、ネットワーク名リソースのRegisterAllProvidersIPの概念です。これは、SQL Server FCIを作成するときに既定で有効になります。前述のように、これを有効にすると、各IPアドレスに1つずつ、2つのAレコードがネットワーク名リソースを使用してDNSに登録されます。
「OR」機能を使用すると、アクティブなサブネットに関連付けられたIPアドレスのみがオンラインになり、他のIPアドレスはオフラインとして表示されます。クライアントが接続文字列へのmultisubnetfailover=trueの追加をサポートしている場合、両方のIPアドレスに対して同時に接続を試行し、クライアントは自動的にアクティブなノードに接続します。これは最も簡単で、マルチサブネットクラスタでのクライアントリダイレクトの既定の方法です。
ドキュメントでは、クライアントがmultisubnetfailover=true機能をサポートしていない場合は、「クライアント アプリケーションが SQL Serverのマルチサブネット FCI と最適な状態で連携して動作するように、クライアント接続文字列の接続タイムアウトを追加の IP アドレスごとに 21 秒で調整を試みてください。 これにより、クライアントの再接続の試みは、マルチサブネット FCI のすべての IP アドレスへの切り替えができるまでタイムアウトしません。」と説明されています。
RegisterAllProvidersIPを無効にすることもできます。RegisterAllProvidersIPを無効にすると、DNSにはAレコードが1つだけになります。DNS Aレコードは、クラスターがフェイルオーバーするたびに、ネームリソースに関連付けられているアクティブなクラスターIPアドレスで更新されます。
このシナリオ構成の欠点は、存続可能時間 (TTL) が期限切れになるまでクライアントが古いIPアドレスをキャッシュすることです。再接続の遅延を最小限に抑えるには、ネームリソースのTTLを変更することをお勧めします。この手順については、TTLを5分に設定する例として以下で紹介します。
Get-ClusterResource -Name sqlcluster | Set-ClusterParameter -Name HostRecordTTL -Value 300
また、AD統合DNSサーバーへの変更がフォレスト全体に反映されるまでに時間がかかる場合があることに注意してください。
このトピックへフィードバック