チュートリアル: クラスタ化された単一サーバー配置
このシナリオでは、Microsoft Windows 認証を使用するフェールオーバー クラスタ上に Notification Services のインスタンスを配置する方法を示します。この構成は、先に説明した単一サーバー配置のシナリオに似ていますが、フェールオーバー クラスタリングによりさらに高い可用性を提供します。通常、この構成は小規模から中規模のアプリケーションで高可用性が必要となる場合に使用します。フェールオーバー クラスタリングおよび Notification Services の詳細については、「Notification Services でのフェールオーバー クラスタリングの使用」を参照してください。
メモ : |
---|
このチュートリアルでは、フェールオーバー クラスタ上に Notification Services を配置する方法の一例を示します。また、フェールオーバー クラスタリングを熟知していることを前提としています。サーバーの名前および番号は、例示の目的でのみ使用されています。このトピックの手順は、独自の配置手順を開発およびテストするためのガイドラインとして使用してください。 |
以下の図に、この配置シナリオのハードウェア構成を示します。この構成には、それぞれ Notification Services と SQL Server データベース エンジン がインストールされた NS1 および NS2 という 2 台のサーバーがあります。Notification Services エンジンを実行する NS$instanceName Windows サービスは、クラスタ汎用サービスとして構成され、必要に応じて他のサーバーへのフェールオーバーを許可しています。
この構成では、クラスタのクォーラム リソース、すべてのデータベース ファイル、すべての操作ファイルに対して共有ドライブを使用します。共有ドライブを使用すると、どちらのサーバーがアクティブな場合でも、クラスタがドライブにアクセスすることができます。
前提条件
フェールオーバー クラスタに Notification Services のインスタンスを配置する前に、以下のすべての前提条件が満たされていることを確認します。
Windows クラスタリングおよびフェールオーバー クラスタでの SQL Server の使用方法を熟知していること。
フェールオーバー クラスタリングをサポートしている NS1 および NS2 に Windows サーバー オペレーティング システムがインストール済みであり、必要な Service Pack と更新プログラムがすべて適用されていること。
Windows のクラスタ サービスが NS1 と NS2 にインストールされ、実行されていること。
このチュートリアルで、以下のリソースを含む NSGroup と呼ばれるクラスタ グループのリソースがあること。
NSGroup のリソース 説明 ネットワーク名 : NSCluster
サーバー クラスタのネットワーク名です。
IP アドレス
クラスタの IP アドレスです。
物理ディスク K
Notification Services ソース ファイルと通知アプリケーションのデータ ファイルを含むディスクです。
同じクラスタ グループに SQL Server リソースがある場合は、追加のディスクを定義します (上の図の G、H、I、および J を参照)。
メモ : 上に示したドライブ マッピングは、このチュートリアル用のものです。独自の名前とドライブ マッピングが選択できます。 クラスタの両方のノードに SQL Server データベース エンジン のインスタンスがインストールされ、SQL Server 仮想サーバーが作成されていること。SQL Server をインストールするためのクラスタ リソースは、Notification Services リソースと同じクラスタ グループまたは別のクラスタ グループにあります。
フェールオーバー クラスタへのデータベース エンジン のインストールの詳細については、「フェールオーバー クラスタリング」を参照してください。
クラスタ クォーラム、データベース ファイル、ログ ファイル、および tempdb ファイルは、上図に示したように、別々のディスクにある必要があります。サーバーの管理者権限を持ち、SQL Server の sysadmin 固定サーバー ロールのメンバとなっているアカウントを使用して手順を実行すること。
Notification Services エンジンのアカウントがドメイン管理者などによって作成されていること。このチュートリアルでは、アカウントは、DOMAIN\NSService と呼ばれます。
Notification Services のインスタンスを配置し、実行するのに必要なファイルに必要なファイル共有が作成されていること。
また、アカウントと DOMAIN\NSService アカウントにこれらの共有への必要な権限も与えてあること。Notification Services エンジン コンポーネントまたはクライアント アプリケーションがリモート サーバーにある場合は、データベース エンジン で TCP/IP または名前付きパイプのネットワーク プロトコルが有効になっていること。Microsoft SQL Server 2005 では、これらのネットワーク プロトコルが既定で無効になっています。詳細については、「SQL Server セキュリティ構成」を参照してください。
配置の概要
この配置チュートリアルでは、プライマリ サーバー NS1 で次のタスクを実行します。
- Notification Services をインストールします。
- ネットワーク ドライブを割り当てて、配置ファイルおよび実行時ファイル用のクラスタ ファイル共有リソースを作成します。
- NSService アカウントに Windows 権限を与えます。
- Notification Services のインスタンスを作成し、有効にします。
- Notification Services のインスタンスを登録します。これにより、Notification Services エンジンを実行する Windows サービスが作成されます。
- クラスタ アドミニストレータを使用して、フェールオーバー クラスタで Windows サービスを実行する汎用サービスを作成します。
- Windows アカウントにデータベース権限を与えます。
メモ : Notification Services では、SQL Server 認証もサポートされています。 可能な場合は、Windows 認証を使用します。
次に、クラスタ内の他のサーバー (この例では単一サーバーの NS2) で次の手順を実行します。
- Notification Services をインストールします。
- 配置ファイルおよび実行時ファイルにネットワーク ドライブを割り当てます。
- ローカル Users グループに Notification Services エンジンのアカウントを追加します。
- Notification Services のインスタンスを登録します。これにより、Notification Services エンジンを実行する Windows サービスが作成されます。
クラスタで Notification Services のインスタンスを開始する準備ができたら、汎用サービス クラスタ リソースを開始します。
第 1 サーバー (NS1) のタスク
クラスタ内のサーバー NS1 で次のタスクを実行します。
手順 1: NS1 へのクラスタ グループの移動
[コントロール パネル] で [管理ツール] を開き、[クラスタ アドミニストレータ] を開きます。
左側のペインで、[グループ] を展開します。
[NSGroup] を選択し、右側のペインの [所有者] 列を確認します。
[所有者] 列に別のサーバーがクラスタ グループを所有していることが示されている場合は、[NSGroup] を右クリックして [移動] をクリックします。
これで、NSGroup リソースが NS1 に移動されました。
手順 2: Notification Services のインストール
Notification Services をインストールします。その他のコンポーネントもインストールできますが、必要ではありません。
詳細については、「SQL Server Notification Services のインストール」を参照してください。
手順 3: ファイル共有リソースの作成およびネットワーク ドライブの割り当て
クラスタ アドミニストレータを使用して、ソース ファイルおよびデータ ファイルのファイル共有リソースを作成します。詳細については、クラスタ アドミニストレータのマニュアルを参照してください。
これらのファイル共有にネットワーク ドライブを割り当てます。ネットワーク ドライブの割り当ての詳細については、Windows のマニュアルを参照してください。
手順 4: DOMAIN\NSService アカウントへの Windows 権限の付与
[スタート] ボタンをクリックし、[すべてのプログラム]、[Microsoft SQL Server 2005]、[Notification Services] を順にポイントします。次に、[Notification Services コマンド プロンプト] をクリックして、Notification Services コマンド プロンプト ウィンドウを開きます。
ローカル Users グループに DOMAIN\NSService アカウントを追加します。コマンド プロンプトで、次の net localgroup コマンドを入力します。
net localgroup users DOMAIN\NSService /add
ローカル グループにアカウントを追加する方法については、Windows のマニュアルを参照してください。
手順 5: Notification Services のインスタンス作成および有効化
コマンド プロンプトで次のコマンドを入力して、インスタンス データベースとアプリケーション データベースを作成します。
nscontrol create -in "Path\ICFName"
構成ファイルによっては、追加のコマンド ライン引数やパラメータが必要になることもあります。
次のコマンドを入力して、インスタンスを有効にします。
nscontrol enable -nameinstanceName-servervirtualDatabaseServer
手順 6: Notification Services のインスタンスの登録
開いたままにしておいたコマンド プロンプト ウィンドウで、次のコマンドを入力します。
nscontrol register -name instanceName -server virtualDatabaseServer
-service -serviceusername DOMAIN\NSService-servicepassword****"password"**
このコマンドが完了すると、NS$instanceName という名前の Windows サービスがローカル コンピュータに作成されます。
メモ : |
---|
SQL Server 認証を使用する場合は、インスタンスを登録するときに、SQL Server ログインとパスワードを指定します。その後、SQL Server ログインに権限を与えます。詳細については、「nscontrol register コマンド」を参照してください。 |
手順 7: 汎用サービス リソースの作成
[コントロール パネル] で [管理ツール] を開き、[クラスタ アドミニストレータ] を開きます。
[グループ] を開きます。
[NSGroup] を右クリックし、[新規作成] をポイントして [リソース] をクリックします。
[新しいリソース] ページで、次の情報を入力します。
[名前] : instanceName
[リソースの種類] : 汎用サービス
[グループ] : NSGroup
[実行可能な所有者] ページの [使用できるノード] ボックスの一覧の [NS1] と [NS2] をクリックします。次に、[追加] をクリックして、[NS1] と [NS2] を [実行可能な所有者] ボックスに移動します。
[依存関係] ページで [利用できるリソース] ボックスの一覧から [NSCluster] ネットワーク名リソースを選択し、[追加] をクリックして [リソースの依存関係] ボックスに移動します。
[汎用サービス パラメータ] ページで、次の情報を入力します。
[サービス名] : **NS$**instanceName
[ネットワーク名をコンピュータ名として使う] チェック ボックスをオンにします。
[レジストリ レプリケーション] ページの [完了] をクリックします。
手順 8: データベース権限の付与
次のコマンドを入力して、DOMAIN\\NSService アカウントの SQL Server ログインを作成します。
sqlcmd -E -S databaseServer -Q "CREATE LOGIN [DOMAIN\NSService] FROM WINDOWS;"
以下のコマンドを入力します。インスタンス データベースにアクセスするための権限が DOMAIN\NSService アカウントに与えられ、このアカウントが NSRunService データベース ロールに追加されます。
sqlcmd -E -SdatabaseServer-Q "USEinstanceDatabase;
** CREATE USER [DOMAIN\NSService];**
** EXEC sp_addrolemember N'NSRunService', N'DOMAIN\NSService';"**
以下のコマンドを入力します。アプリケーション データベースにアクセスするための権限が DOMAIN\NSService アカウントに与えられ、このアカウントが NSRunService データベース ロールに追加されます。
sqlcmd -E -S databaseServer -Q "USE applicationDatabase**;**
** CREATE USER [DOMAIN\NSService];**
** EXEC sp_addrolemember N'NSRunService', N'DOMAIN\NSService';"**
このインスタンスで複数のアプリケーションをホストする場合は、アプリケーション データベースの数だけこの手順を繰り返してください。
コマンド プロンプト ウィンドウを閉じます。
重要 : |
---|
この時点では汎用サービスをオンラインにしないでください。NS2 を構成した後で汎用サービスをオンラインにします。 |
追加のサーバー (NS2) のタスク
サーバー NS2 で次のタスクを実行します。
手順 1: NS2 へのクラスタ グループの移動
[コントロール パネル] で [管理ツール] を開き、[クラスタ アドミニストレータ] を開きます。
左側のペインで、[グループ] を展開します。
[NSGroup] を選択し、右側のペインで [所有者] 列を見ます。
NS1 がクラスタ グループを所有している場合は、[NSGroup] を右クリックして [移動] をクリックします。
これで、NSGroup リソースが NS2 に移動されました。
手順 2: Notification Services のインストール
Notification Services をインストールします。その他のコンポーネントを併せてインストールしてもかまいませんが、配置時には必要ありません。
コンポーネントのインストールの詳細については、「SQL Server Notification Services のインストール」を参照してください。
手順 3: ネットワーク ドライブの割り当て
- NS1 で行ったのと同じ NSSourceFiles と NSDataFiles へのネットワーク ドライブの割り当てを実行します。ネットワーク ドライブの割り当ての詳細については、Windows のマニュアルを参照してください。
手順 4: DOMAIN\NSService アカウントへの Windows 権限の付与
[スタート] ボタンをクリックし、[すべてのプログラム]、[Microsoft SQL Server 2005]、[Notification Services] を順にポイントします。次に、[Notification Services コマンド プロンプト] をクリックして、Notification Services コマンド プロンプト ウィンドウを開きます。
ローカル Users グループに DOMAIN\NSService アカウントを追加します。コマンド プロンプトで、次の net localgroup コマンドを入力します。
net localgroup users DOMAIN\NSService /add
ローカル グループにアカウントを追加する方法については、Windows のマニュアルを参照してください。
手順 5: Notification Services のインスタンスの登録
[スタート] ボタンをクリックし、[すべてのプログラム]、[Microsoft SQL Server 2005]、[Notification Services] を順にポイントします。次に、[Notification Services コマンド プロンプト] をクリックして、Notification Services コマンド プロンプト ウィンドウを開きます。
コマンド プロンプト ウィンドウで、次のコマンドを入力します。
nscontrol register -name instanceName -server virtualDatabaseServer
-service -serviceusername DOMAIN\NSService-servicepassword****"password"**
Notification Services のインスタンスがクラスタに配置され、有効化されました。サブスクライバおよびサブスクリプションを追加してイベントを送信できますが、汎用サービスをオンラインにするまでインスタンスは通知を生成しません。次に、汎用サービスをオンラインにする方法について説明します。
Notification Services のインスタンスの開始
通知の生成を開始するインスタンスの準備ができたら、汎用サービスをオンラインにします。
汎用サービスをオンラインにする
[コントロール パネル] で [管理ツール] を開き、[クラスタ アドミニストレータ] を開きます。
左側のペインで、[グループ] を展開します。
[NSGroup] を選択します。
NS1 にクラスタ グループを戻す場合、[NSGroup] を右クリックして、[移動] を選択します。
右側のペインで、[汎用サービス] を右クリックし、[オンラインにする] をクリックします。
詳細については、「Notification Services インスタンスの開始と停止」を参照してください。
トラブルシューティング
アプリケーションで通知が生成されない場合は、Notification Services コマンド プロンプトで次のコマンドを実行してインスタンスの状態を確認します。
nscontrol status-name instanceName
すべてのコンポーネントが正しいサーバーで実行されていること、および状態が Enabled になっていることを確認します。詳細については、「インスタンス、アプリケーション、およびコンポーネントの状態表示」を参照してください。
また、Windows アプリケーション ログでエラーの有無を確認します。詳細については、「Notification Services のトラブルシューティング」を参照してください。
参照
概念
Notification Services のインスタンスの配置
ホストされないイベント プロバイダの配置
サブスクリプション管理インターフェイスの配置
その他の技術情報
nscontrol create コマンド
nscontrol enable コマンド
nscontrol register コマンド
sqlcmd ユーティリティ