5 service-broker sql-server-2012 high-availability
我有两个带有 MSSQL2012 的节点,它们与 AlwaysOn 高可用性一起工作
在一些崩溃之后,我不得不从节点之一上的可用性组中删除 db。为了恢复,我已经在第二个节点上备份了数据库(完整+日志),并根据标准程序在崩溃的节点上恢复了它。看起来完全没问题,但我遇到过,当我将主要角色赋予恢复的节点时,应用程序服务(使用 Service Broker)不做任何事情。
sys.databases 说对于我的数据库 is_broker_enabled=1,但我发现了几篇关于必须显式启用还原数据库上的代理的文章。
由于 AlwaysOn,SET ENABLE_BROKER 失败。
Internet 说激活服务代理的唯一方法是使用 ENABLE_BROKER 选项再次恢复数据库。但是为了将 db 添加到 AlwaysOn,我必须使用 NORECOVERY 恢复它。
试图运行
RESTORE DATABASE [dbname]
FROM DISK = N'D:\111.bak'
WITH NORECOVERY, ENABLE_BROKER
Run Code Online (Sandbox Code Playgroud)
我已经看到有关这两个 WITH 选项之间冲突的通知
有人知道进行这种恢复的正确方法吗?db 超过 150GB,检查每个版本总是需要两个多小时:)
提前致谢
是的,在 RESTORE 中使用 ENABLE_BROKER 与 NORECOVERY 冲突。如果您的数据库处于 NORECOVERY 状态,您需要等到它恢复后再重新启用代理。如果遇到问题,请尝试使用立即回滚来重新启动:
ALTER DATABASE db_name SET ENABLE_BROKER with rollback immediate
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
611 次 |
| 最近记录: |