Loading...

We've detected that your browser language is Chinese. Would you like to visit our Chinese website? [ Dismiss ]
By: Dylan

グローバルIT環境の不確実性が高まる中、事業継続性を確保する堅牢な高可用性(HA)戦略はこれまで以上に重要となっています。多くのSQL Serverデータベース管理者(DBA)や企業は、ダウンタイムをほぼゼロに抑えられる点、負荷分散、スケーラビリティなどのメリットからSQL Serverアクティブ・アクティブクラスターの構築を検討します。

本ガイドではアクティブ・アクティブクラスターとは何かを解説し、段階的な構築手順を紹介します。また、手軽にアクティブ・アクティブ環境を構築できる専用のデータベースレプリケーションソリューションもご案内します。

アクティブ・アクティブクラスターとは

アクティブ・アクティブクラスターは、2台以上のノードが同時に業務処理を実行する高可用性アーキテクチャです。

一般的なアクティブ・アクティブ構成では、以下の機能を活用できます。

  • 複数ノードによる同時トラフィック処理
  • サーバー間の負荷分散
  • 自動フェイルオーバーによる高可用性
  • リソースの無駄を最小限に抑える(待機専用アイドルサーバーが存在しない)

SQL Serverは完全なアクティブ・アクティブクラスターに対応しているか

結論から言うと対応していません。SQL ServerのWSFC(Windowsサーバーフェイルオーバークラスター)は、書き込み処理向けの完全なアクティブ・アクティブクラスターをサポートしていません。

SQL Serverにおけるアクティブ・アクティブクラスターとは、WSFC上の複数クラスターノードに独立した複数のSQL Serverインスタンスを同時起動し、それぞれ別のデータベース群を担当する構成のことです。自動フェイルオーバー機能により高可用性を維持します。

SQL Serverのアクティブ・アクティブ構成は、同一データベースに対し複数ノードが同時に読み書きを行う(負荷分散型・分散型データベース)仕組みではありません。クラスター内の各サーバー(ノード)が少なくとも1つのSQLインスタンスを稼働させているため「アクティブ」と呼ぶだけです。

  • プライマリレプリカが読み書き処理を受け持つ
  • セカンダリレプリカはレポートや分析用途など読み取り専用クエリに利用可能

つまりSQL Serverが実現できるのは、複数ノードで同時書き込みが可能な真のアクティブ・アクティブではなく、「読み取りスケール型アクティブ・アクティブ」モデルという位置づけとなります。

SQL Serverにおけるアクティブ・アクティブクラスターとアクティブ・パッシブクラスターの違い

SQL Server アクティブ・パッシブフェイルオーバークラスター:1台のノードのみ本番用SQL Serverインスタンスを稼働しクライアント業務を処理し、もう1台のノードはデータベース処理を一切実行しないアイドルな待機状態となります。

ハードウェア、ネットワーク、サービスの障害でプライマリノードが停止した場合、クラスターは自動的にSQLインスタンスをパッシブノードに切り替えます。この構成は管理が簡単で高可用性を確保できますが、通常稼働時は待機ノードが活用されず、CPUやメモリといった計算リソースが無駄になります。

SQL Server アクティブ・アクティブクラスター:複数の独立したSQL Serverインスタンスを複数クラスターノード上で同時起動し、各インスタンスがそれぞれ担当するデータベースとアプリケーションの業務を処理する構成を指します。

各ノードが自身の業務を常時処理するため、アクティブ・パッシブ構成と比較してサーバーハードウェアの利用効率が大幅に向上します。

実運用において、パフォーマンス、コスト、適用業務の面で差が存在します。以下に比較表を記載します。

 

SQL Server アクティブ・アクティブクラスター

SQL Server アクティブ・パッシブクラスター

ハードウェア利用率

利用率最大化:全ノードがアクティブ状態で独立したSQLインスタンスをホストし業務を処理します。アイドルな機器が存在せず、サーバーリソースを効率的に活用可能です。

利用率が低い:パッシブノードは常時アイドルな待機機器となります。フェイルオーバー発生時以外活用されないため、ハードウェアリソースが浪費されます。

フェイルオーバーによるパフォーマンス影響

影響は中程度:ノード障害発生時、障害が発生したSQLインスタンスが正常なノードに移行するため、一時的にCPU・メモリのリソース競合が発生します。障害ノードが復旧するまでこの状態が続きます。

影響が最小限:パッシブノードはアイドル状態で単一のSQLインスタンスの引き継ぎ専用に確保されています。事前に業務が稼働していないためリソース競合が発生せず、大半のケースでフェイルオーバーが高速に完了します。

ライセンス費用

費用が高額:全ノードでアクティブなインスタンスが稼働するため、すべてのSQL Serverインスタンスとノードにライセンスが必要です。クラスター機能をフル活用するにはEnterpriseエディションが必須となるケースが一般的です。

費用が安価:稼働するSQLインスタンスは1つのみで、パッシブノードは待機用途のためライセンス対象外となります。ライセンスはアクティブノードと単一インスタンスのみに適用されます。

 

導入の複雑さ

複雑度が高い:WSFC上に複数のSQL Serverインスタンスを展開し、インスタンスの依存関係、フェイルオーバールール、業務分散を設定する必要があります。フェイルオーバー後のリソースボトルネックを回避するため、綿密な容量計画が不可欠です。

 

複雑度が低い:WSFC上に単一のSQLインスタンス、1台のアクティブノード、1台の待機ノードを配置するシンプルな構成です。基本的なフェイルオーバーとクォーラム設定のみを行うため、DBAによる管理が容易です。

 

適切な利用シナリオ

CRM、レポート、ログ管理など独立した複数のデータベースを保有し、高可用性とハードウェア利用率の最大化を両立したい企業。アイドルリソースを確保できず、業務をインスタンスごとに分割可能な環境に適しています。

 

金融取引、基幹業務アプリなど単一の重要データベースを保有し、運用の簡易性とフェイルオーバーによる影響の最小化を最優先する企業。DBA人員が少ない組織、ハードウェアコストより管理の容易さを重視する環境に最適です。

 

どちらを選ぶべきか

SQL Serverアクティブ・アクティブクラスターとアクティブ・パッシブクラスターの選択は、企業の優先事項、業務特性、リソース制約によって決まります。判断基準を以下に整理します。

►SQL Server アクティブ・アクティブクラスターを選択する場合:複数の独立したデータベースを個別のSQLインスタンスに分割でき、ハードウェア利用率を最大化したい場合。

アイドルサーバーの確保が難しく、複数業務に対して高可用性を必要とする企業に適したアーキテクチャです。複雑な運用管理に対応できるDBA人員が確保でき、フェイルオーバー発生時に単一ノードで全インスタンスを一時的に処理可能な容量計画を実施できる環境に最適です。

►アクティブ・パッシブクラスターを選択する場合:単一の重要データベース(または密接に連携した少数のデータベース群)を運用し、構成の簡易性とフェイルオーバーの低影響を最優先する場合。

設定や保守作業が少ないため、DBAの専門知識が少ない企業に適しています。ハードウェアコストが大きな課題ではなく、リソース利用率より高速で影響の少ないフェイルオーバーを重視する場合にも適切です。

SQL Serverアクティブ・アクティブクラスターの段階的な構築手順

SQL Serverは複数ノードで同時書き込みを行う完全なアクティブ・アクティブに対応していませんが、リソース利用率を高めパフォーマンスを改善する「アクティブ・アクティブライク」なアーキテクチャを構築可能です。詳細な手順を記載します。

事前要件
全ノードで同一バージョン・同一エディションのWindows Serverを実行する。Windows Server 2016以降の使用を推奨。
CPU、メモリ、ディスクコントローラー、ネットワークアダプターなど、全ノードのハードウェア仕様を同一または同等に統一する。
SQL Serverアクティブ・アクティブクラスターでは、各SQLインスタンスのデータベース保存先としてSAN、NAS、iSCSIなどの共有ストレージを使用するのが一般的です。

手順1. 全ノードにWSFC機能をインストール

各ノード(ノード1、ノード2)でサーバーマネージャーを開き、「役割と機能の追加」に進み「フェイルオーバークラスタリング」機能を選択します。ウィザードに従い、.NET Frameworkなど必要な依存コンポーネントを含めてインストールします。インストール完了後、各ノードを再起動して設定を反映させます。

手順2. クラスター検証テストを実行

クラスターを作成する前に、クラスター検証テストを実行し、全ノードがWSFCの要件を満たしているか確認します。いずれか一方のノードでフェイルオーバークラスターマネージャーを起動し、「構成の検証」を選択し、2台のノードを検証対象に追加します。「すべてのテストを実行」を選択し、ハードウェア、ソフトウェア、ネットワーク、ストレージ構成を検証します。検証レポートを確認し、重大なエラーや警告はすべて解消してから次の手順に進んでください。重大エラーが残存するとクラスターを作成できません。

手順3. WSFCクラスターを作成

フェイルオーバークラスターマネージャーで「クラスターの作成」を選択し、ウィザードに従います。一意のクラスター名を入力し、クラスター用の固定IPアドレスを割り当てます。2台のノードをクラスターに追加し、クォーラム構成を確認します。2ノードクラスターの場合は、スプリットブレイン現象を回避するため、ファイル共有、ディスク、クラウドのいずれかのクォーラムウィットネスを設定します。

ウィザードを完了させクラスターを作成後、フェイルオーバークラスターマネージャー上でクラスターの状態が「オンライン」になっていることを確認します。

手順4. 1台目のSQL Serverクラスターインスタンスをノード1にインストール

ノード1にSQL Serverインストールメディアを挿入し、セットアップウィザードを起動します。「新しいSQL Serverフェイルオーバークラスターのインストール」を選択し、画面の指示に従います。SQL Server Enterpriseエディションを選択し、必要な機能をチェックします。インスタンス固有の名前、仮想ネットワーク名(VNN)、固定IPアドレスを割り当てます。

インスタンスのシステムデータベースとユーザーデータベース用の共有ストレージを設定し、SQL ServerサービスとSQL Serverエージェントサービスに使用するドメインサービスアカウントを登録します。インストールを完了後、フェイルオーバークラスターマネージャー上でインスタンスがオンライン状態であることを確認します。

手順5. 2台目のSQL Serverクラスターインスタンスをノード2にインストール

ノード2で同様にインストール作業を実施します。既存のインスタンスにノードを追加する場合は「SQL Serverフェイルオーバークラスターにノードを追加」を選択しますが、アクティブ・アクティブクラスターを構築するには独立した2つ目のクラスターインスタンスを作成する必要があるため、このオプションは使用しません。

再度セットアップウィザードを起動し、「新しいSQL Serverフェイルオーバークラスターのインストール」を選択して2つ目のインスタンスを作成します。

New SQL Server failovercluster installation

一意のインスタンス名(例:SQLINSTANCE02)、1台目のインスタンスと重複しないVNNと固定IPアドレス(例:192.168.1.101)、別の共有ストレージを割り当て、1台目のインスタンスとのリソース競合を回避します。

SQLサービスには同一のドメインサービスアカウント(または同等の権限を持つ別のアカウント)を使用し、インストールを完了させます。

フェイルオーバークラスターマネージャー上で2つ目のインスタンスがオンライン状態であることを確認します。

手順6. 優先所有者とフェイルオーバー設定を構成

各SQLインスタンスに優先所有者ノードを設定し、業務が適切に分散されるよう調整します。フェイルオーバークラスターマネージャーで対象のSQL Serverインスタンスリソースを右クリックし「プロパティ」→「優先所有者」タブを開きます。

SQLINSTANCE01の優先所有者をノード1、SQLINSTANCE02の優先所有者をノード2に設定します。加えて、1時間あたりの最大フェイルオーバー回数などのフェイルオーバー閾値、即時・遅延・実行しないのいずれかのフェイルバックルールを設定します。

両方のインスタンスのインストール完了後、各インスタンスが設定した優先所有者ノード上で稼働し、インスタンス、ストレージ、ネットワークなどすべてのクラスターリソースがオンラインであることを確認します。各ノードのサービスコンソールまたはフェイルオーバークラスターマネージャーから確認可能です。

最新のSQLアクティブ・アクティブソリューション(拠点間対応)

従来のSQL Serverフェイルオーバークラスターは共有ストレージに依存し、同一データセンター内での構成が必須となるため、拠点間・クラウド間のアクティブ・アクティブ環境を構築することが困難です。

ストレージに障害が発生するとクラスター全体が停止する単一点障害のリスクが存在します。また、クラスターのハートビート通信やストレージ接続に厳しいレイテンシ制限が定められているため、データセンターをまたぐ構成ではスプリットブレイン現象が発生しやすく実用的ではありません。

ここではログベースの最新データレプリケーションソリューションi2Streamをご紹介します。真のアクティブ・アクティブ機能を実現し、セマンティックレベルのCDC(変更データキャプチャ)によりノード間でデータをレプリケートし、オンプレミス、クラウド、ハイブリッド環境を問わず複数データベースインスタンスで双方向の並行読み書き処理を実現します。

i2Streamの主なメリット

  • 共有ストレージ不要:各ノードに独立したストレージを使用し、ログ型CDC技術によりリアルタイムでデータ同期を行うため、単一点障害を解消します。
  • 環境の制限なし:同一データセンターの制約を撤廃し、サブネット間、データセンター間、AWS/Azure/Alibaba Cloudなどクラウド間の構成に標準対応。ミリ秒単位の同期速度、サブ秒級のRPO/RTOを実現します。
  • 完全なアクティブ・アクティブパフォーマンス:複数ノードが同時に読み書き処理を実行しつつデータの整合性を保ち、リソース競合や単一書き込みボトルネックを解消します。
  • 異種DB間互換性:SQL ServerとOracle、MySQL、PostgreSQLなど他データベース間の双方向レプリケーションに対応。データベース移行やシステム統合に最適です。
  • 業務影響ゼロ:エージェントレスで導入可能なWeb管理コンソールを搭載。本番システムを停止することなく、簡単にセットアップ・設定・監視を実施できます。
  • コスト効率の良いスケーラビリティ:必要に応じてノードを追加する線形スケーリングに対応。過剰な設備投資を抑え、パフォーマンスと可用性を向上させます。

まとめ

SQL Serverアクティブ・アクティブクラスターはWSFCを基盤としたHAアーキテクチャで、複数の独立したSQLインスタンスを活用し全ノードのリソース利用率を最大化します。本ガイドでは実際に構築するための明確な段階手順を記載しました。
一方、共有ストレージによる障害リスク、単一データベースの負荷分散非対応、運用の複雑さといった根本的な制限が存在するため、Info2softのi2Streamが優れた選択肢となります。i2Streamはこれらの課題を解消しつつ高可用性のメリットを維持し、企業向けSQL環境に対し、より安定性が高くコスト効率に優れたHAソリューションを提供します。
概要は準備中です

関連記事

SQL Server自動フェイルオーバー:仕組みと構築手順ガイド
Microsoft SQL Serverの自動フェイルオーバーは、プライマリサーバーに障害が発生した際にセカンダリレプリカへ自動切り替えを行い、システムの可用性を維持する機能です。本ガイドではその動作原理と段階的な設定方法を解説し、データベース障害時のサービス停止時間を最小限に抑える手法を紹介します。
記事を読む
フェイルオーバーとは何か、そして重要な理由
企業環境においてフェイルオーバー機構の構築は不可欠です。本記事ではフェイルオーバーの定義と重要性を解説した上で、事業に適したフェイルオーバーツールの選定方法を紹介します。
記事を読む
How to Achieve SQL Server to Oracle Database Migration [FREE]
このガイドはSQL ServerからOracleデータベースへの移行について詳述し、移行前準備、2種類の信頼できる手法(中小企業向け無料ツールOracle SQL Developer、無停止運用を実現するエンタープライズ向けi2Stream)、ツール比較を解説しています。あらゆる規模の企業に向け、シームレスで安全なデータ転送のロードマップを提供します。
記事を読む
災害復旧‑クラウド vs オンプレミス:どちらが優れているか
災害が発生した際、適切な復旧戦略が業務の再開スピードを左右します。クラウド型とオンプレミス型の災害復旧は、コスト、制御性、スケーラビリティ、復旧速度の面でそれぞれ異なるメリットを持っています。本ガイドでは両方式を詳細に比較し、組織に最適なDR戦略の選定を支援します。
記事を読む
目次:
最新情報を購読
最新のインサイト、ニュース、限定コンテンツをお届けします。いつでも配信解除が可能です。
購読する
ビジネスデータのセキュリティ強化を始めませんか?
60日間の無料トライアルまたはデモで、Info2softが企業データをどのように保護するかをご確認ください。
フォームにご記入の上、送信してください。担当者より追ってご連絡いたします。
このフォームを送信することにより、 プライバシー通知を読み、同意したことを確認します。
{{ isSubmitting ? '送信中...' : '送信する' }}