如何为 Amazon RDS SQL Server 启用或禁用 Service Broker?

上次更新时间:2020 年 7 月 3 日

如何为 Amazon Relational Database Service (Amazon RDS) SQL Server 启用和禁用 Service Broker?

简短描述

Amazon RDS 支持 Service Broker,但 Amazon RDS 不支持 Service Broker 端点。有关 Service Broker 的更多信息,请参阅有关 Service Broker 的 Microsoft 文档。

解决方法

当您启用 Service Broker 时,Amazon RDS 会请求数据库锁定。在启用 Service Broker 之前,您需要关闭该数据库所有打开的连接。

1.    检查是否已启用了 Service Broker:

select name,is_broker_enabled from sys.databases
  where name= [YourDB]

2.    如果尚未启用 Service Broker,则将生成一个新的 Service Broker:

ALTER DATABASE [YourDB] SET NEW_BROKER;
GO

3.    在现有的数据库上启用 Service Broker:

ALTER DATABASE [YourDB] SET ENABLE_BROKER;
GO

如果您运行的是多可用区部署,请运行以下命令:

ALTER DATABASE [YourDB] SET PARTNER OFF;
GO

然后在多可用区部署中重新启用 Service Broker:

ALTER DATABASE [YourDB] SET ENABLE_BROKER WITH ROLLBACK IMMEDIATE

要在现有的数据库上禁用 Service Broker,请运行以下命令:

ALTER DATABASE [YourDB] SET DISABLE_BROKER;
GO

您无法在已经属于可用性组的数据库上启用 Service Broker。如果您在这样的数据库上执行上述解决方法,则会收到类似于以下内容的错误:

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.

因此,请先启用 Service Broker,然后再将其添加到可用性组。为此,请将 RDS 数据库转换为单个可用区,然后启用 Service Broker。

1.将您的 RDS 数据库转换为单个可用区。

2.启用 Service Broker:

<p>ALTER DATABASE [DBName ] SET NEW_BROKER;<br>GO
</p><p>ALTER DATABASE [DBName ] SET ENABLE_BROKER;<br>GO
</p>
3.验证 Service Broker 是否已启用:

select name,is_broker_enabled from sys.databases<br>
 where name= [DBName ]

4.将您的 RDS 数据库转换回多可用区。


这篇文章对您有帮助吗?


您是否需要账单或技术支持?