Amazon Relational Database Service (Amazon RDS) SQL Server の Service Broker を有効にしたり無効にしたりする必要があります。
簡単な説明
Service Broker は Amazon RDS でサポートされていますが、Service Broker エンドポイントは Amazon RDS ではサポートされていません。Service Broker の詳細については、Microsoft ウェブサイトの「Service Broker」を参照してください。
解決策
Service Broker を有効にする
Service Broker を有効にすると、Amazon RDS はデータベースロックをリクエストします。
注: Service Broker を有効にする前に、データベースへの開いている接続をすべて閉じてください。
次の手順を実行します。
-
Service Broker が有効になっているかどうかを確認します。
select name,is_broker_enabled from sys.databases
where name= [YourDB]
-
Service Broker が有効になっていない場合は、新しい Service Broker を生成します。
ALTER DATABASE [YourDB] SET NEW_BROKER;
GO
-
既存のデータベースで Service Broker を有効にします。
ALTER DATABASE [YourDB] SET ENABLE_BROKER;
GO
マルチ AZ 配置の場合
次の手順を実行します。
-
以下のコマンドを実行します。
ALTER DATABASE [YourDB] SET PARTNER OFF;
GO
-
Service Broker を再び有効にします。
ALTER DATABASE [YourDB] SET ENABLE_BROKER WITH ROLLBACK IMMEDIATE
Service Broker を無効にする
既存のデータベースで Service Broker を無効にするには、次のコマンドを実行します。
ALTER DATABASE [YourDB] SET DISABLE_BROKER;
GO
既に可用性グループの一部であるデータベースの Service Broker を有効にする
既に可用性グループの一部であるデータベースの Service Broker を有効にすることはできません。その場合、次のようなエラーが表示されます。
ALTER DATABASE [test] SET PARTNER OFF;
GO
Msg 1416, Level 16, State 1, Line 1
Database "test" is not configured for database mirroring.
代わりに、RDS データベースをシングル AZ に変換してから Service Broker を有効にします。
-
RDS データベースをシングル AZ に変換します。
-
Service Broker を有効にします。
ALTER DATABASE [DBName ] SET NEW_BROKER;
GO
ALTER DATABASE [DBName ] SET ENABLE_BROKER;
GO
-
Service Broker が有効になっていることを確認します。
select name,is_broker_enabled from sys.databases
where name= [DBName ]
-
RDS データベースをマルチ AZ に再変換します。
関連情報
Amazon RDS for Microsoft SQL Server
Migrating Microsoft SQL Server databases to the AWS Cloud