Service Broker と AlwaysOn 可用性グループ (SQL Server)
このトピックでは、SQL Server 2012 で Service Broker を AlwaysOn 可用性グループ と共に使用できるように構成する方法について説明します。
このトピックの内容
可用性グループのサービスでリモート メッセージを受信するための要件
可用性グループのリモート サービスにメッセージを送信するための要件
可用性グループのサービスでリモート メッセージを受信するための要件
可用性グループにリスナーが存在している。
詳細については、「可用性グループ リスナーの作成または構成 (SQL Server)」を参照してください。
Service Broker エンドポイントが存在し、正しく構成されている。
可用性グループの可用性レプリカをホストするすべての SQL Server のインスタンスで、次のように Service Broker エンドポイントを構成します。
LISTENER_IP を "ALL" に設定します。 この設定により、可用性グループ リスナーにバインドされている有効な IP アドレスに接続できるようになります。
すべてのホスト サーバー インスタンスで Service Broker の PORT を同じポート番号に設定します。
ヒント 特定のサーバー インスタンスの Service Broker エンドポイントのポート番号を確認するには、sys.tcp_endpoints カタログ ビューの port 列に対してクエリを実行します (type_desc = 'SERVICE_BROKER')。
次の例では、既定の Service Broker ポート (4022) を使用し、有効なすべての IP アドレスをリッスンする Windows 認証済みの Service Broker エンドポイントを作成します。
CREATE ENDPOINT [SSBEndpoint] STATE = STARTED AS TCP (LISTENER_PORT = 4022, LISTENER_IP = ALL ) FOR SERVICE_BROKER (AUTHENTICATION = WINDOWS)
詳細については、「CREATE ENDPOINT (Transact-SQL)」を参照してください。
エンドポイントに対する CONNECT 権限を許可する。
Service Broker エンドポイントに対する CONNECT 権限を PUBLIC またはログインに許可します。
次の例では、broker_endpoint という名前の Service Broker エンドポイントに対する接続を PUBLIC に許可します。
GRANT CONNECT ON ENDPOINT::[broker_endpoint] TO [PUBLIC]
詳細については、「GRANT (Transact-SQL)」を参照してください。
msdb に AutoCreatedLocal ルートまたは特定のサービスへのルートが含まれている。
注 msdb を含む各ユーザー データベースには、既定で AutoCreatedLocal というルートが含まれています。 このルートは、どのサービス名および任意のブローカー インスタンスにも適用でき、現在のインスタンス内でメッセージを配信するように指定します。 AutoCreatedLocal の優先度は、リモート インスタンスと通信する特定のサービスを明示的に指定したルートよりも低くなります。
ルートの作成の詳細については、「Service Broker のルーティングの例」(SQL Server 2008 R2 バージョンのオンライン ブック) および「CREATE ROUTE (Transact-SQL)」を参照してください。
可用性グループのリモート サービスにメッセージを送信するための要件
対象サービスへのルートを作成する。
次のようにルートを構成します。
ADDRESS を、サービス データベースをホストする可用性グループのリスナーの IP アドレスに設定します。
PORT を、各リモート SQL Server インスタンスの Service Broker エンドポイントに指定したポートに設定します。
次の例では、ISBNLookupRequestService サービスに対する RouteToTargetService という名前のルートを作成します。 ルートの対象は、ポート 4022 を使用している可用性グループ リスナー MyAgListener です。
CREATE ROUTE [RouteToTargetService] WITH SERVICE_NAME = 'ISBNLookupRequestService', ADDRESS = 'TCP://MyAgListener:4022';
詳細については、「CREATE ROUTE (Transact-SQL)」を参照してください。
msdb に AutoCreatedLocal ルートまたは特定のサービスへのルートが含まれている (詳細については、このトピックの前の「可用性グループのサービスでリモート メッセージを受信するための要件」を参照してください)。
[Top]
関連タスク
[Top]
関連項目
概念
AlwaysOn 可用性グループの概要 (SQL Server)