如何为 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 的更多信息,请参阅 Microsoft 网站上的 Service Broker

解决方法

启用 Service Broker

当您启用 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

对于多可用区部署

完成下面的步骤:

  1. 运行以下命令:

    ALTER DATABASE [YourDB] SET PARTNER OFF;
    GO
  2. 再次启用 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:

  1. 将 RDS 数据库转换为单可用区

  2. 启用 Service Broker:

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

    select name,is_broker_enabled from sys.databases
      where name= [DBName ]
  4. 将 RDS 数据库转换回多可用区

相关信息

Amazon RDS for Microsoft SQL Server

Migrating Microsoft SQL Server databases to the AWS Cloud