sql-server - 恢复数据库后如何恢复 Service Broker?
问题描述
在其他服务器上恢复数据库后,Service Broker 将停止。恢复的数据库有一个 Trustworthy Off,现在我将它设置为 On 以再次运行 Broker。我知道这是不好的做法。特别是在阅读了所罗门鲁茨基的文章之后。我已经按照 Solomon 对 SQLCLR UNSAFE 函数的建议进行了操作,但没有将数据库设置为 TRUSTWORTHY ON。它工作正常!
如何在 TRUSTWORTHY OFF 的情况下恢复代理工作?
解决方案
运行 Service Broker 不需要 Trustworthy。但是,您可以将一个选项传递给您RESTORE
可能需要的语句。引用文档:
ENABLE_BROKER
指定在还原结束时启用 Service Broker 消息传递,以便可以立即发送消息。默认情况下,还原期间禁用 Service Broker 消息传递。数据库保留现有的 Service Broker 标识符。
如果你不这样做,还有希望!恢复后,您可以发出alter databse [yourDB] set enable_broker;
. 请注意,这需要独占数据库访问权限,因此您可能还需要添加with rollback immediate
或类似alter database
语句。
推荐阅读
- axapta - 在与 FormDataSource 关联的 Query 中找不到所需的 QueryBuildDataSource
- gcc - 编译到特定的 OpenMP 版本
- ios - Alamofire 发布请求给出 404 成功响应
- iterm2 - 本地目录的 Iterm2 自动配置文件切换
- hibernate - 删除未完成
- c# - 将参数传递给 cmd.exe
- android - Google Maps API - 如何在不捕捉位置的情况下移动地图?
- matlab - 如何在 Matlab 中求解 8 个 ODE 的系统,其中 4 个 ODE 的初始值在高度 z=0 处,其余初始值在 z = H 处
- python - 从异常中获取更多详细信息
- node.js - Node.js 找不到模块 ibm_db