首页 > 解决方案 > 恢复数据库后如何恢复 Service Broker?

问题描述

在其他服务器上恢复数据库后,Service Broker 将停止。恢复的数据库有一个 Trustworthy Off,现在我将它设置为 On 以再次运行 Broker。我知道这是不好的做法。特别是在阅读了所罗门鲁茨基的文章之后。我已经按照 Solomon 对 SQLCLR UNSAFE 函数的建议进行了操作,但没有将数据库设置为 TRUSTWORTHY ON。它工作正常!

如何在 TRUSTWORTHY OFF 的情况下恢复代理工作?

标签: sql-serversqlclrservice-broker

解决方案


运行 Service Broker 不需要 Trustworthy。但是,您可以将一个选项传递给您RESTORE可能需要的语句。引用文档

ENABLE_BROKER

指定在还原结束时启用 Service Broker 消息传递,以便可以立即发送消息。默认情况下,还原期间禁用 Service Broker 消息传递。数据库保留现有的 Service Broker 标识符。

如果你不这样做,还有希望!恢复后,您可以发出alter databse [yourDB] set enable_broker;. 请注意,这需要独占数据库访问权限,因此您可能还需要添加with rollback immediate或类似alter database语句。


推荐阅读