我想要为 Amazon Relational Database Service(Amazon RDS)SQL Server 启用和禁用 Service Broker。
简短描述
Amazon RDS 支持 Service Broker,但 Amazon RDS 不支持 Service Broker 端点。有关 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
对于多可用区部署
完成下面的步骤:
-
运行以下命令:
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 数据库转换为单可用区,然后启用 Service Broker:
-
将 RDS 数据库转换为单可用区。
-
启用 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 数据库转换回多可用区。
相关信息
Amazon RDS for Microsoft SQL Server
Migrating Microsoft SQL Server databases to the AWS Cloud