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