データベースの高可用性
BizTalk Serverは、データ ストアとデータの永続化にSQL Serverに大きく依存しています。 その他すべての BizTalk Server コンポーネントおよびホストにも、多種多様な業務アプリケーション (メッセージの受信、処理、ルーティングなど) を統合するプロセスにおいて、それぞれ固有の役割がありますが、この作業をディスクに取り込み、維持するという役割は、データベース コンピューターにあります。 たとえば、BizTalk Serverが受信メッセージを受信すると、受信ホストは、他のホストがオーケストレーションの処理と送信のためにメッセージを取得する前に、メッセージ ボックス データベースに保持します。 BizTalk ソリューションにオーケストレーションが含まれる場合、BizTalk Serverは、ビジネス プロセス (処理ホスト) を実行するホストにメッセージをルーティングし、オーケストレーションの完了後にメッセージを MessageBox データベースに保存します。 その後、送信ホストが、そのメッセージをデータベースから取り出し、適切な送信アダプターを使って外部のアプリケーションに送信します。
BizTalk Server データベースの高可用性を提供するには、Windows クラスタリングを使用して、SQL Server実行している 2 つ以上のコンピューターを構成してサーバー クラスターを作成します。 このサーバー クラスタリングは、BizTalk Server データベースの冗長性とフォールト トレランスを提供します。 複数のコンピューターを並列に運用して可用性とスケーラビリティを高めようとする負荷分散クラスタリングとは異なり、サーバー クラスタリングでは通常、2 台のデータベース コンピューターをアクティブ/パッシブ構成で使用します。この構成では、一方のコンピューターが他方のコンピューターのバックアップ リソースを提供します。
次の図は、アクティブ/パッシブ構成のサーバー クラスタリングによって高可用性を実現した BizTalk Server のデータベース層を示しています。
アクティブ側のデータベース コンピューターでエラーや障害が発生した場合、障害の起きたコンピューターが復旧するまでの間、パッシブ側のコンピューターがアクティブになり、データベース リソースの管理を引き継ぎます。 データベース サービスはフェールオーバーし、新しいアクティブ なコンピューターへのデータ接続を復元し、BizTalk アプリケーションが引き続き機能できるようにします。
BizTalk Server データベース
Microsoft BizTalk Server によって、SQL Server にいくつかのデータベースがインストールされます。 次の表は、BizTalk Server データベースの一般的な使用特性を示しています。
データベース | 既定のデータベース名 | 使用特性 |
---|---|---|
管理データベース | BizTalkMgmtDb | このデータベースは、使用率の低い読み取り操作と書き込み操作を処理します。 |
メッセージ ボックス データベース | BizTalkMsgBoxDb | このデータベースは、使用率の高い読み取り操作と書き込み操作を処理します。 |
追跡データベース | BizTalkDTADb | このデータベースは、追跡するように構成したデータの量と、使用率の低い読み取り操作に応じて、使用率の高い書き込み操作を処理する可能性があります。 |
SSO データベース | SSODB | このデータベースは、使用率の低い読み取り操作と書き込み操作を処理します。 |
BAM 分析データベース | BAMAnalysis | このSQL Server Analysis Servicesデータベースは、実行される監視のレベルに応じて、使用率の高い読み取りおよび書き込み操作を処理します。 |
BAM スター スキーマ データベース | BAMStarSchema | このSQL Server Analysis Servicesデータベースは、実行される監視のレベルに応じて、使用率の高い読み取りおよび書き込み操作を処理します。 |
BAM プライマリ インポート データベース | BAMPrimaryImport | このSQL Server Analysis Servicesデータベースは、実行される監視のレベルに応じて、使用率の高い読み取りおよび書き込み操作を処理します。 |
BAM アーカイブ データベース | BAMArchive | このSQL Server Analysis Servicesデータベースは、実行される監視のレベルに応じて、使用率の高い読み取りおよび書き込み操作を処理します。 |
ルール エンジン データベース | BizTalkRuleEngineDb | このデータベースは、ルールを更新しない限り、使用率の低い読み取り操作と書き込み操作を処理する可能性があります。 |
Analysis Services データベースの追跡 | BizTalkAnalysisDb | このSQL Server Analysis Servicesデータベースは、使用率の高い読み取り操作と書き込み操作を処理します。 |
BizTalk Serverランタイム操作では、通常、最初の 4 つのデータベース (管理データベース、MessageBox データベース、追跡データベース、SSO データベース) が使用されます。 これらのデータベースのトラフィックに応じて、SQL Serverを実行している別のコンピューターに配置できます。 使用するデータベースは、BizTalk Server のどの機能を使うかによって異なります。表に示したデータベースを全部使用する場合も、一部だけを使用する場合もあります。 必要に応じて、これらのデータベースをスケールアウトしてクラスター化できます。
データベースごとに個別のディスクを使用するなど、適切なSQL Serverデプロイプラクティスに従っていることを確認します。
BizTalk Server データベースの場合は、次の操作を行うことをお勧めします。
フェールオーバー クラスタリングを設定します。 フェールオーバー クラスタリングを使用すると、SQL Serverは、SQL Serverのインスタンスの処理を失敗したサーバーから稼働中のサーバーに自動的に切り替えることができます。
BAM プライマリ インポート データベースは、イベント データを収集します。 障害が発生した場合、前回のバックアップ以降に BAM プライマリ インポート データベースに書き込まれたデータが失われます。 失われたイベントを再生成する方法がないため、BAM プライマリ インポート データベースでフェールオーバー クラスタリングを有効にすることが特に重要です。
SQL SERVER RAID 1+0 (独立ディスクの冗長配列) を使用します。特に、MessageBox データベースと BAM プライマリ インポート データベースに使用します。
BizTalk Server データベースのバックアップの詳細については、「ディザスター リカバリーのベスト プラクティス」を参照してください。
Note
Microsoft SQL Server は、データベースを使用できる確率を高めるためのデータベース ミラーリングと呼ばれるソフトウェア ソリューションを提供します。 現在、SQL Server データベース ミラーリングの使用は、BizTalk Server データベースのトランザクション整合性の維持に問題が発生する可能性があるため、Microsoft BizTalk Server データベースの高可用性を確保するためのサポートされているソリューションではありません。
SQL Serverでのデータベース ミラーリングとデータベース間トランザクションの詳細については、「トランザクション - 可用性グループとデータベース ミラーリング」を参照してください。 BizTalk ServerデータベースをSQL Server クラスターにインストールして、高可用性とログ配布をディザスター リカバリーの目的で使用する必要があります。
ログ配布の詳細については、「ログ配布BizTalk Serverとは」を参照してください。