去年遇到的一个问题,最终根据晚上的方案解决
分发服务器发生的代理无法启动,在作业历史记录里没有任何错误信息,但是发现了系统日志Event Viewer->Windows Logs->system里面记录了详细的错误信息
DISTRIB.exe - Application Error |
The application was unable to start correctly (0xc0000142). Click OK to close the application. |
在微软技术支持网上找到类似问题的解决方案
http://support.microsoft.com/kb/949296/zh-cn
经过本地虚拟机测试,在建立超过100多个分发代理后,新建立的分发代理已无法启动,系统日志出现同样的错误。
修改注册表KEY_LOCAL_MACHINE->SYSTEM->CurrentControlSet->Control->SessionManager->SubSystems目录下Windows的键值
把其中SharedSection=1024,20480,2048中的第三个值从默认的768更改为2048后,重启服务器。
新建的分发快照代理作业可以正常启动。
为什么更改第三个值,可以看文章中这一段。
在 SQL Server 2005 中的作业如何影响桌面堆
在 SQL Server 2005 中,您可能必须在不同的代理帐户下运行的不同作业。对于每个代理帐户,将分配设置为非交互式桌面堆为该代理帐户。例如,第三个 SharedSection 参数的值为 512 。如果您使用代理帐户来启动某个作业,将分配 512 KB 的桌面堆栈,即使作业本身使用桌面堆仅 10 KB 。注意: 使用相同的代理服务器帐户的其他作业仍将使用此桌面堆