【发布时间】:2016-06-03 18:53:36
【问题描述】:
问题:
我们的一个客户在 Windows 2008 R2 Standard 计算机上运行 SQL Server 2005。每隔一段时间,服务器就会出现以下错误:
SQL Server 未能生成一个线程来处理新的登录或连接,错误代码为 0xc0000000。检查 SQL Server 错误日志和 Windows 事件日志以获取有关可能的相关问题的信息。 [客户:
<local machine>]
错误以大约每秒一次的速度发生,CLIENT: 的值是唯一改变的东西(有时,它显示机器的 IP 而不是 <local machine>属于客户端的其他计算机的 IP),并且在重新启动 SQL Server 之前,无法与其建立任何连接。重启后就正常了。
这个问题大约每月发生一次或两次。没有前一次出现的 Windows 日志;我已经增加了应用程序日志的最大大小。
机器配置:
- 操作系统:Windows 2008 R2 Standard SP1 (x64)
- SQL:Microsoft SQL Server 2005 - 9.00.4035.00(Intel X86)2008 年 11 月 24 日 13:01:59 版权所有 (c) 1988-2005 Microsoft Corporation Standard Edition on Windows NT 6.1(Build 7601:Service Pack 1)李>
- CPU:英特尔至强 E5430 @ 2.66GHz
- 内存:32 GB
- 分页文件:32 GB 在驱动器 E(系统管理)上,在所有其他驱动器上没有(包括驱动器 C)
更多信息:
- 服务器有 2 个正在使用的数据库:
- 一个数据库用于复制(1 个发布,大约有 450 个订阅者,其中大部分每天同步,通常每天不止一次)。一个网络应用程序也使用相同的数据库,该应用程序有大约 150 名用户在白天积极使用它。
- 这两个数据库还经常运行作业,主要执行文件导入和从一个数据库到另一个数据库的传输。
更新:
在再次检查日志时,我注意到 AppDomain 因内存压力而被标记为卸载,并以大约每 30 分钟一次的速度卸载和重新创建。在所述问题的最后 2 次发生期间,AppDomain 分别上升到 250 和 264。这可能是一个相关问题吗?
【问题讨论】:
-
如果您的应用程序服务器或客户端(如果它们直接访问数据库)没有正确关闭连接,您会得到这种情况。如果您问我,问题不在于 SQL Server,而在于您的应用程序。
-
如何检查是否是这种情况?我应该寻找什么?
-
投票迁移到 dba.stackexchange