MSSQL 2005 Service Broker 无法启动

MSSQL 2005 Service Broker 无法启动

我收到 MSSQL 2005 标准机器的投诉,说它们无法启动服务代理,随后收到服务代理管理器的一条消息:

Jul 20 08:35:47 sql3 MSSQL$SQL3: 9697: Could not start Service Broker for database id: 5763. A problem is preventing SQL Server from starting Service Broker. Check the SQL Server error log for additional messages. 
Jul 20 08:35:47 sql3 MSSQL$SQL3: 9645: An error occurred in the service broker manager, Error: 3602, State: 145. 

我找不到有关错误 3602 对服务代理管理器意味着什么的文档。有没有什么方法可以诊断和修复此问题?

答案1

3602?这确实很奇怪。

您能否检查 sys.databases service_broker_guid 中是否有任何重复项,特别是如果 id 为 5763 的数据库与其他数据库重复?

答案2

TechNet 论坛上有一个帖子,http://social.msdn.microsoft.com/Forums/en-US/sqlservicebroker/thread/a5af6e9a-f3b6-4b73-ae3d-95238502d28f,其中涉及到了这个问题(尽管原始帖子与该错误无关),其中一个回复说 3602 是“交易中止通知”。

可能是在架构更新后,针对这些数据库的某些事务或操作未能成功完成(顺便问一下,这数千个数据库的架构是否完全相同,即同一应用程序的数据库)?您是否尝试运行 SQL Profiler 并查看是否能够捕获 3602 发生的情况?

答案3

我认为我找到了:

此错误是由于 EXECUTE AS 基础结构无法模拟 CDR 数据库所有者而导致的。通常,这是由于在两台计算机之间移动数据库而导致的。将此数据库的所有者更改为有效的登录名。使用以下方法之一更改 CDR 所有者:

将数据库::[CDR] 的授权更改为 [SA];

看:

http://social.msdn.microsoft.com/Forums/en-US/sqlservicebroker/thread/a5af6e9a-f3b6-4b73-ae3d-95238502d28f

相关内容