移行 (Service Broker)

Service Broker アプリケーションを移行する通常のプロセスでは、アプリケーションを含むデータベースをデータベース エンジンの別のインスタンスに移動します。Service Broker アプリケーションに関連する多くの要素は、データベースに伴って使用できます。アプリケーションの一部の要素は、移動後に再作成または再構成する必要があります。

データベースには、Service Broker オブジェクト、ストアド プロシージャ、証明書、ユーザー、およびアプリケーションの送信ルートの情報が格納されています。これらはデータベースと共に移動します。ほとんどの Service Broker データベースはデータベース マスタ キーを持っています。移動後の場所にデータベースをアタッチする場合には、マスタ キーのパスワードを使用する必要があります。

データベースを移動した後、次の操作を実行する必要があります。

  • 必要なログインを構成します。

  • メッセージ交換を開始するサービスを、移動するサービスに更新します。移動するサービスのルートを含むデータベースごとに、新しいネットワーク アドレスを使用するようにルートを変更します。

  • CREATE DATABASE ステートメントまたは ALTER DATABASE ステートメントを使用して、復元されたデータベースで Service Broker のメッセージ配信をアクティブ化し、別のブローカ インスタンス識別子を設定します。ブローカ インスタンス識別子は、一度にネットワーク上の 1 つのデータベースからのみ使用します。通常、元のデータベースとまったく同じ状態に戻すためにバックアップを復元する場合には、インスタンス識別子を変更しません。たとえば、次のような目的でデータベースをアタッチする場合は、ブローカ インスタンス識別子を変更しません。

    • データベースを復旧するため

    • ミラー化を作成するため

    • スタンバイ サーバーのログ配布を構成するため

  • 着信メッセージのルートは、サービスを格納したデータベースには含まれていません。サービスが、サービス宛ての着信メッセージをルーティングするため msdb データベース内の明示的なルートを使用する場合、別のインスタンスにデータベースをアタッチする際はこのルートを再作成する必要があります。

  • Service Broker のエンドポイントおよびトランスポート セキュリティは、特定のデータベースにではなく、インスタンス全体に適用されます。新しいインスタンスにデータベースをアタッチしても、該当インスタンスのエンドポイントまたはトランスポート セキュリティには影響を及ぼしません。ネットワークを介してサービスがメッセージを送受信する場合、必ず新しいインスタンスに Service Broker のエンドポイントを設定してください。また、アプリケーションの必要に応じてインスタンスのトランスポート セキュリティを構成する必要があります。

データベースを移動したら、ssbdiagnose ユーティリティを実行して Service Broker のエラーを確認することができます。詳細については、「ssbdiagnose ユーティリティ」を参照してください。