设置: Windows 2008 上的 SQL 2008 Standard SP1 64Bit - 一个 CPU,8GB 内存 该服务器专用于 SQL Server。服务器内存设置为默认设置(最小 0,最大 2000GB)
来自 8 个网站和服务的连接 - 这些服务经常检查新任务 8 个数据库,每个大约 1GB 到 5GB
最近从 Windows 2003 上的 SQL 2000 升级
问题: 最近将所有数据库都转移了过来,在夜间负载过大的时候 - 尤其是运行 CHECKDB 时 - 服务器将停止允许新的连接,并出现下面详述的错误消息。
在此期间,SQL 备份继续工作。
重新启动服务器即可恢复正常运行。
我可以努力移动作业并进行性能调整以尽量避免过载/使用高峰,但服务器只会随着时间的推移变得越来越繁忙。
这些服务正在使用资源/连接池,夜间的负载主要是索引重建、归档和 checkdb
问题: 那么,有没有办法妥善处理“过载/无法接受新连接”或防止其发生?
有人知道这里可能发生什么吗?
如果服务器超载并且无法接受新连接,唯一的解决方案是重新启动吗?
错误消息: 在网站上:未指定错误 COM 错误编号:-2147467259 (0x80004005) [DBNETLIB][ConnectionOpen (PreLoginHandshake())。]常规网络错误。请检查您的网络文档。
COM 错误编号:-2147467259 (0x80004005) 无法打开登录时请求的数据库
在 SQL Server 错误:17189,严重性:16,状态:1. SQL Server 失败,错误代码为 0xc0000000,无法生成线程来处理新的登录或连接。
错误:18456,严重性:14,状态:46。用户登录失败原因:重新验证连接上的登录时无法打开登录对象中配置的数据库。
错误:18056,严重性:20,状态:46。客户端无法重用 SPID 为 109 的会话,该会话已重置为连接池。故障 ID 为 46。
错误:18456,严重性:14,状态:5。用户登录失败原因:找不到与提供的名称匹配的登录名。
BCP 错误:SQLState = 08001,NativeError = 258 - 错误 = [Microsoft][SQL Server Native Client 10.0]共享内存提供程序:超时错误
由于登录响应延迟,无法完成登录过程 - SQLState = S1T00,NativeError = 0 - 错误 = [Microsoft][SQL Server Native Client 10.0]登录超时已过期
SQLServer 错误:258,共享内存提供程序:超时错误 [258]。[SQLSTATE 08001] [165] ODBC 错误:0,登录超时已过期 [SQLSTATE HYT00]
SQLServer 错误:258,由于登录前响应延迟,无法完成登录过程 [SQLSTATE 08001] [382] 登录服务器“(本地)”失败 (ConnUpdateStartExecutionDate)