Service Broker アプリケーションの移動
Service Broker アプリケーションを移動する通常の方法は、アプリケーションが格納されたデータベースを別のインスタンスに移動することです。Service Broker アプリケーションに関連する多くの要素が、データベースと共に移動します。アプリケーションの一部の要素は、移動後に再作成または再構成する必要があります。
データベースには、Service Broker オブジェクト、ストアド プロシージャ、証明書、ユーザー、およびアプリケーションの送信ルートの情報が格納されています。これらはデータベースと共に移動します。
- アプリケーションが使用するログインを持つすべてのユーザーのログインを構成する必要があります。
- 証明書は作成されたデータベースに格納されているため、データベースの移動の際は保持されます。
- ほとんどの Service Broker データベースはデータベース マスタ キーを持っています。移動後の場所にデータベースをアタッチする場合には、マスタ キーのパスワードを使用する必要があります。
また、メッセージ交換を開始するサービスを、移動するサービスに更新する必要があります。移動するサービスのルートを含むデータベースごとに、新しいネットワーク アドレスを使用するようルートを変更します。
CREATE DATABASE コマンドおよび ALTER DATABASE コマンドには、復元されたデータベースで Service Broker のメッセージ配信をアクティブ化するオプションや、別のブローカ インスタンス識別子を設定するオプションがあります。ブローカ インスタンス識別子は、一度にネットワーク上の 1 つのデータベースからのみ使用します。一般に、元のデータベースとまったく同じ状態に戻すためにバックアップを復元する場合には、インスタンス識別子を変更しません。たとえば、次のような目的でデータベースをアタッチする場合は、ブローカ インスタンス識別子を変更しません。
- 復旧のため
- ミラー化を作成するため
- スタンバイ サーバーのログ配布を構成するため
データベースのコピーを作成する際には、ブローカ インスタンス識別子を変更し、Service Broker のメッセージ配信が非アクティブであることを確認します。データベースのアタッチに関するオプションの詳細については、「CREATE DATABASE (Transact-SQL)」および「ALTER DATABASE (Transact-SQL)」を参照してください。データベースで Service Broker のメッセージ配信をアクティブ化する方法については、「データベースで Service Broker のメッセージ配信をアクティブ化する方法 (Transact-SQL)」を参照してください。
着信メッセージのルートは、サービスを格納したデータベースには含まれていません。サービスが、サービス宛ての着信メッセージをルーティングするため msdb データベース内の明示的なルートを使用する場合、別のインスタンスにデータベースをアタッチする際はこのルートを再作成する必要があります。
Service Broker のエンドポイントおよびトランスポート セキュリティは、特定のデータベースにではなく、インスタンス全体に適用されます。新しいインスタンスにデータベースをアタッチしても、該当インスタンスのエンドポイントまたはトランスポート セキュリティには影響を及ぼしません。ネットワークを介してサービスがメッセージを送受信する場合、必ず新しいインスタンスに Service Broker のエンドポイントを設定し、アプリケーションの必要に応じてインスタンスのトランスポート セキュリティを構成してください。
参照
処理手順
データベースで Service Broker のメッセージ配信をアクティブ化する方法 (Transact-SQL)
概念
その他の技術情報
ALTER DATABASE (Transact-SQL)
ALTER ROUTE (Transact-SQL)
CREATE DATABASE (Transact-SQL)
CREATE ENDPOINT (Transact-SQL)
他のサーバーへのデータベースのコピー