如何为 Amazon RDS SQL Server 开启和关闭 Service Broker?

2 分钟阅读
0

如何为 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 数据库转换回多可用区。


相关信息

Amazon RDS 上的 Microsoft SQL Server

将 Microsoft SQL Server 数据库迁移到 AWS Cloud

相关视频

AWS 官方
AWS 官方已更新 4 年前