クラスターでの Integration Services の構成
Integration Services をクラスター化することはお勧めしません。Integration Services サービスは、クラスター化されるサービスまたはクラスター対応サービスではなく、クラスター ノード間のフェールオーバーはサポートしません。 したがって、クラスター環境では、クラスターの各ノードで Integration Services をインストールし、スタンドアロン サービスとして起動する必要があります。
重要 |
---|
Microsoft では、Integration Services サービスをクラスター リソースとして構成することをお勧めしません。 |
Integration Services サービスはクラスター化されるサービスではありませんが、クラスターの各ノードに個別に Integration Services をインストールした後、クラスター リソースとして動作するように手動で構成することができます。このトピックでは、この構成の利点が欠点を上回ると判断したユーザー向けに、サービスをクラスター リソースとして構成するための手順を説明します。
ただし、クラスター化されたハードウェア環境を構築する目的が高可用性を実現することにある場合は、Integration Services サービスをクラスター リソースとして構成しなくても、この目的を達成できます。 クラスター内の他のノードからクラスター内の任意のノード上でパッケージを管理するには、クラスター内の各ノードで Integration Services サービスの構成ファイルを変更します。パッケージが格納されている SQL Server の使用可能なすべてのインスタンスを指し示すように、それぞれの構成ファイルを変更します。この方法を使用すると、Integration Services サービスをクラスター リソースとして構成したときに発生する可能性のある問題を回避できるうえ、ほとんどの顧客から求められる高可用性を実現できます。構成ファイルを変更する方法の詳細については、「Integration Services サービスの構成」を参照してください。
Integration Services サービスの役割について
クラスター環境でサービスをどのように構成するかに関して詳しい情報に基づく決断を行うには、Integration Services サービスの役割を理解することがきわめて重要です。
Integration Services サービスは、Integration Services パッケージの一覧表示、起動、停止、監視、インポート、およびエクスポートを行うための SQL Server Management Studio の管理インターフェイスをサポートします。Integration Services サービスは、パッケージを設計するうえで必要ありません。また、Integration Services サービスは、パッケージを実行したり、パッケージを実行する SQL Server エージェント ジョブをスケジュール設定したりする場合にも必要ありません。
Integration Services サービスが実行されていないときでも行える作業の例を次に示します。
Business Intelligence Development Studio でパッケージを設計および実行する。
dtexec コマンド プロンプト ユーティリティ (dtexec.exe)、パッケージ実行ユーティリティ (dtexecui.exe)、SQL Server エージェント、または SQL Server インポートおよびエクスポート ウィザードを使用してパッケージを実行する。
Transact-SQL クエリを使用して、msdb データベースに格納されているパッケージを一覧表示する。Windows エクスプローラーを使用して、ファイル システムに格納されているパッケージを一覧表示する。
SQL Server エージェント ジョブおよびメンテナンス プランを作成および実行する。
Integration Services をクラスター リソースとして構成する場合の欠点について
Integration Services サービスをクラスター リソースとして構成する場合、次のような潜在的な欠点があります。
フェールオーバーが発生したときに、実行中のパッケージが再起動されません。チェックポイントからパッケージを再開することで、パッケージのエラーから回復できます。サービスをクラスター リソースとして構成しなくても、チェックポイントからパッケージを再開できます。詳細については、「パッケージでのチェックポイントの使用」を参照してください。
SQL Server とは異なるリソース グループに Integration Services サービスを構成した場合、クライアント コンピューターから Management Studio を使用して msdb データベースに格納されているパッケージを管理することはできません。Integration Services サービスは、このダブルホップ シナリオで資格情報を委任することはできません。
クラスター内に Integration Services サービスを含む複数の SQL Server リソース グループがある場合、フェールオーバーにより予期しない結果が生じる可能性があります。次のシナリオについて考えてみます。グループ 1 は、SQL Server サービスと Integration Services サービスを含み、ノード A 上で実行されています。グループ 2 は、同様に SQL Server サービスと Integration Services サービスを含み、ノード B 上で実行されています。次に、グループ 2 からノード A へのフェールオーバーが発生します。ここで、ノード A 上で Integration Services サービスの別のインスタンスを起動しようとした場合、Integration Services サービスは単一インスタンス サービスなので、その試みは失敗します。ノード A へのフェールオーバーを試行している SQL Server サービスが同様に失敗するかどうかは、グループ 2 における Integration Services サービスの構成に依存します。Integration Services サービスがリソース グループ内の他のサービスに影響を与えるように構成されている場合、フェールオーバーを試行している SQL Server サービスは失敗します。なぜなら、Integration Services サービスが失敗しているからです。サービスがリソース グループ内の他のサービスに影響を与えないように構成されている場合、SQL Server サービスはノード A にフェールオーバーできます。リソース グループ内の他のサービスに影響を与えないようにグループ 2 の Integration Services サービスが構成されていない限り、フェールオーバーを試行している Integration Services サービスが失敗すると、フェールオーバーを試行している SQL Server サービスも失敗する可能性があります。
クラスター リソースとしての Integration Services サービスの構成
このセクションでは、Integration Services サービスをクラスター リソースとして構成する利点が欠点を上回ると判断したユーザー向けに、必要な構成手順を説明します。ただし、Microsoft では、Integration Services サービスをクラスター リソースとして構成することをお勧めしません。
Integration Services サービスをクラスター リソースとして構成するには、次の手順に従う必要があります。
クラスターに Integration Services をインストールします。
Integration Services をクラスター リソースとして構成します。
Integration Services サービスおよびパッケージ ストアを構成します。
Integration Services サービスをクラスター リソースとしてオンラインにします。
クラスターへの Integration Services のインストール
Integration Services をクラスターにインストールするには、クラスター内の各ノードに Integration Services をインストールする必要があります。
Integration Services をクラスターにインストールするには
1 つ以上のノードのクラスターをインストールして構成します。
(省略可能) SQL Server データベース エンジンなどのクラスター化サービスをインストールします。
クラスターの各ノードに Integration Services をインストールします。
クラスター リソースとしての Integration Services の構成
Integration Services がクラスターの各ノードにインストールされている状態で、Integration Services をクラスター リソースとして構成する必要があります。Integration Services サービスをクラスター リソースとして構成する場合、サービスを SQL Server データベース エンジンと同じリソース グループに追加することも、異なるグループに追加することもできます。 次の表に、リソース グループの選択に関連する利点と欠点を示します。
Integration Services と SQL Server が同じリソース グループに属する場合 |
Integration Services と SQL Server が異なるリソース グループに属する場合 |
---|---|
SQL Server データベース エンジン と Integration Services サービスが同じ仮想サーバー上で実行されるので、クライアント コンピューターは、SQL Server Management Studio を使用して、msdb データベースに格納されているパッケージを管理できます。この構成では、ダブルホップ シナリオの委任の問題を回避できます。 |
クライアント コンピューターは、SQL Server Management Studio を使用して、msdb データベースに格納されているパッケージを管理することができません。 クライアント コンピューターは、Integration Services サービスが実行されている仮想サーバーに接続できます。ただし、当該コンピューターは、SQL Server が実行されている仮想サーバーにユーザーの資格情報を委任することはできません。 これは、ダブルホップ シナリオと呼ばれます。 |
Integration Services サービスは、CPU およびその他のコンピューター リソースの利用に関して他の SQL Server サービスと競合します。 |
異なるリソース グループは異なるノードに構成されているので、Integration Services サービスは、CPU およびその他のコンピューター リソースの利用に関して他の SQL Server サービスと競合しません。 |
両方のサービスが同じコンピューター上で実行されているので、msdb データベースへのパッケージの読み込みと保存をより高速に行うことができ、生成されるネットワーク トラフィックも少なくて済みます。 |
msdb データベースへのパッケージの読み込みと保存に時間がかかる可能性があり、生成されるネットワーク トラフィックが多くなります。 |
両方のサービスは同時にオンラインまたはオフラインになります。 |
Integration Services サービスがオンラインのときに SQL Server データベース エンジンがオフラインの場合があります。 その場合、SQL Server データベース エンジンの msdb データベースに格納されているパッケージを利用できなくなります。 |
必要に応じて Integration Services サービスをすばやく別のノードに移動できません。 |
必要に応じて Integration Services サービスをすばやく別のノードに移動できます。 |
Integration Services をどちらのリソース グループに追加するかを決定した後、当該グループのクラスターとして Integration Services を構成する必要があります。
Integration Services をクラスター リソースとして構成するには
クラスター アドミニストレーターを開きます。
コンソール ツリーで、[グループ] フォルダーを選択します。
結果ペインで、Integration Services を追加するグループを選択します。
SQL Server と同じリソース グループに Integration Services をクラスター リソースとして追加するには、SQL Server が属しているグループを選択します。
SQL Server とは異なるグループに Integration Services をクラスター リソースとして追加するには、SQL Server が属している以外のグループを選択します。
[ファイル] メニューの [新規作成] をポイントし、[リソース] をクリックします。
リソースの新規作成ウィザードの [新しいリソース] ページで、名前を入力し、[サービスの種類] として [汎用サービス] を選択します。[グループ] の値は変更せずに、[次へ] をクリックします。
[実行可能な所有者] ページで、リソースの実行可能な所有者として、クラスターのノードを追加または削除し、[次へ] をクリックします。
依存関係を追加するには、[依存関係] ページで [利用できるリソース] からリソースを選択し、[追加] をクリックします。フェールオーバーが発生した場合は、Integration Services がオンラインになる前に、SQL Server と Integration Services パッケージが保存されている共有ディスクの両方がオンラインになる必要があります。依存関係を選択したら、[次へ] をクリックします。
[汎用サービス パラメーター] ページで、サービスの名前に「MsDtsServer100」と入力し、[次へ] をクリックします。
[レジストリ レプリケーション] ページで、[追加] をクリックし、Integration Services サービスの構成ファイルの場所を示すレジストリ キーを追加します。このファイルは、Integration Services サービスと同じリソース グループに属している共有ディスクに配置されている必要があります。
[レジストリ キー] ダイアログ ボックスに、「SOFTWARE\Microsoft\Microsoft SQL Server\100\SSIS\ServiceConfigFile」と入力します。[OK] をクリックし、[完了] をクリックします。
これで、Integration Services サービスがクラスター リソースとして追加されました。
Integration Services サービスおよびパッケージ ストアの構成
Integration Services をクラスター リソースとして構成した後は、クラスター内の各ノード上で Integration Services サービスの構成ファイルの場所および内容を変更する必要があります。これは、フェールオーバーが発生した場合にすべてのノードで構成ファイルとパッケージ ストアを使用可能にするための変更です。構成ファイルの場所および内容を変更した後、サービスをオンラインにする必要があります。
Integration Services サービスおよびパッケージ ストアを構成するには
構成ファイル %ProgramFiles%\Microsoft SQL Server\100\DTS\Binn\MsDtsSrvr.ini.xml を探し、Integration Services サービスを追加したグループの共有ディスクにコピーします。
共有ディスク上で、パッケージ ストアとして使用するために Packages という名前のフォルダーを新規作成します。このフォルダーに対するフォルダー一覧表示権限と書き込み権限を、適切なユーザーおよびグループに許可します。
共有ディスク上で、テキスト エディターまたは XML エディターを使用して構成ファイルを開き、ServerName 要素の値を、同じリソース グループ内の仮想 SQL Server の名前に変更します。
StorePath 要素の値を、共有ディスク上の、前の手順で作成した Packages フォルダーの完全修飾パスに変更します。
レジストリの HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\100\SSIS\ServiceConfigFile の値を、共有ディスク上にあるサービス構成ファイルの完全修飾パスとファイル名に変更します。
Integration Services サービスをオンラインにするには
- これには、クラスター アドミニストレーターで、Integration Services サービスを選択して右クリックし、ポップアップ メニューの [オンラインにする] をクリックします。これで、Integration Services サービスがクラスター リソースとしてオンラインになります。
クラスター環境の Integration Services への接続
クラスターまたは任意のサーバー上で Integration Services サービスを構成した後は、クライアント コンピューターからサービスに接続できるように DCOM 権限を構成しなければならない場合があります。詳細については、「リモートの Integration Services サーバーへの接続」を参照してください。
Integration Services サービスは、資格情報を委任できません。したがって、次の条件に一致するときは、Management Studio を使用して msdb データベースに格納されているパッケージを管理することはできません。
Integration Services サービスと SQL Server が別個のサーバーまたは仮想サーバー上で実行されている。
SQL Server Management Studio を実行しているクライアントが 3 台目のコンピューターである。
クライアント コンピューターは、Integration Services サービスが実行されている仮想サーバーに接続できます。ただし、当該コンピューターは、SQL Server が実行されている仮想サーバーにユーザーの資格情報を委任することはできません。これは、ダブルホップ シナリオと呼ばれます。
|