为什么登录失败会导致 SQL 2005 转储和放弃?

为什么登录失败会导致 SQL 2005 转储和放弃?

我们的 SQL 2005 服务器开始超时,并最终在 10 月 26 日停止响应。应用程序日志显示,在重新启动之前发生了大量 17883 个事件。重新启动后一切正常,但我们仍然感到困惑。快进 6 天……它再次发生。然后 2 天后再次发生。最后一晚。今天它已经发生了三次了。它发生的时间线相当可预测:

  1. 跨日志备份。
  2. “user2” 登录失败。
  3. 小型转储
  4. 调度程序的另一个小型转储
  5. 重复了 17883 个事件。
  6. 服务器逐渐出现故障,直到无法接受任何请求。
  7. 重启能让我们再次前行(创可贴)

不过,有趣的是,服务器本身似乎没有任何问题。CPU 使用率正常。网络连接良好。我们可以远程登录并查看日志。不过,管理工作室最终会陷入困境。

今天,我们第一次尝试停止服务而不是重新启动。除 SQL Server 服务外,所有服务都自行停止。我们最终对该服务执行了“结束任务”,并能够恢复所有服务。它运行良好约 30 分钟,直到我们再次看到超时和 17883。这次,可能是因为我们没有完全重新启动,我们看到一堆 844 事件与 17883 事件混在一起。

我们整个技术团队都在绞尽脑汁......我们正在讨论一些想法:

  • MS 累积更新与我们第一次遇到问题的时间差不多。从那时起,我们就把它回滚了。也许它并没有完全回滚。
  • 这种情况看起来和感觉起来都像是一个未处理的“堆栈溢出”(没有关系),因为它一开始很小,然后随着时间的推移而累积。问题是 CPU 使用率并不高。无论如何,我们根本不排除 SQL 2005 错误。
  • 也许我们添加了太多的导入流程并且已经达到了这个盒子的限制。(难以置信)。

查看其中一次崩溃时的 SQLDUMP0151.log。有一些“登录失败”,然后有两个堆栈转储。第一个是正常堆栈转储,第二个是调度程序转储。以下是一段代码:(抱歉没有换行符)

2009-11-10 11:59:14.95 spid63 使用“xpsqlbot.dll”版本“2005.90.3042”执行扩展存储过程“xp_qv”。这只是一条信息性消息;无需用户采取任何行动。2009-11-10 11:59:15.09 spid63 使用“xplog70.dll”版本“2005.90.3042”执行扩展存储过程“xp_msver”。这只是一条信息性消息;无需用户采取任何行动。 2009-11-10 12:02:33.24 登录错误:18456,严重性:14,状态:16。2009-11-10 12:02:33.24 登录用户“standard_user2”登录失败。[客户端:50.36.172.101] 2009-11-10 12:08:21.12 登录错误:18456,严重性:14,状态:16。2009-11-10 12:08:21.12 登录用户“standard_user2”登录失败。 [客户端:50.36.172.101] 2009-11-10 12:13:49.38 登录错误:18456,严重性:14,状态:16。2009-11-10 12:13:49.38 登录用户“standard_user2”登录失败。[客户端:50.36.172.101] 2009-11-10 12:15:16.88 登录错误:18456,严重性:14,状态:16。2009-11-10 12:15:16.88 登录用户“standard_user2”登录失败。 [客户端:50.36.172.101] 2009-11-10 12:18:24.41 登录错误:18456,严重性:14,状态:16。2009-11-10 12:18:24.41 登录用户“standard_user2”登录失败。 [客户端:50.36.172.101] 2009-11-10 12:18:38.88 spid111 使用“dbghelp.dll”版本“4.0.5” 2009-11-10 12:18:39.02 spid111 ***堆栈转储正在发送至 C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\LOG\SQLDump0149.txt 2009-11-10 12:18:39.02 spid111 SqlDumpExceptionHandler:进程 111 生成致命异常 c0000005 EXCEPTION_ACCESS_VIOLATION。SQL Server 正在终止此进程。 2009-11-10 12:18:39.02 spid111 * ******************************************************************************** 2009-11-10 12:18:39.02 spid111 * 2009-11-10 12:18:39.02 spid111 * 开始堆栈转储: 2009-11-10 12:18:39.02 spid111 * 11/10/09 12:18:39 spid 111 2009-11-10 12:18:39.02 spid111 * 2009-11-10 12:18:39.02 spid111 * 2009-11-10 12:18:39.02 spid111 * 异常地址 = 0159D56F 模块 (sqlservr+0059D56F) 2009-11-10 12:18:39.02 spid111 * 异常代码 = c0000005 EXCEPTION_ACCESS_VIOLATION 2009-11-10 12:18:39.02 spid111 * 写入地址 00000000 时发生访问冲突 2009-11-10 12:18:39.02 spid111 * 输入缓冲区 138 字节 - 2009-11-10 12:18:39.02 spid111 * “NRSC _ PTA 22 00 4e 00 52 00 53 00 43 00 5f 00 50 00 54 00 41 00 2009-11-10 12:18:39.02 spid111 * C _ QA . dbo . 43 00 5f 00 51 00 41 00 2e 00 64 00 62 00 6f 00 2e 00 2009-11-10 12:18:39.02 spid111 * U sp S el N ex 55 00 73 00 70 00 53 00 65 00 6c 00 4e 00 65 00 78 00 2009-11-10 12:18:39.02 spid111 * t A 帐户74 00 41 00 63 00 63 00 6f 00 75 00 6e 00 74 00 00 00 2009-11-10 12:18:39。02 spid111 * @ int F orm I 0a 40 00 69 00 6e 00 74 00 46 00 6f 00 72 00 6d 00 49 2009-11-10 12:18:39.02 spid111 * D & 8 @ tx 00 44 00 00 26 04 04 38 00 00 00 09 40 00 74 00 78 00 2009-11-10 12:18:39.02 spid111 * t A 别名 § 74 00 41 00 6c 00 69 00 61 00 73 00 00 a7 0f ​​00 09 04 2009-11-10 12:18:39.02 spid111 * Ð GQE9732 d0 00 00 07 00 47 51 45 39 37 33 32 2009-11-10 12:18:39.02 spid111 *
2009-11-10 12:18:39.02 spid111 * 2009-11-10 12:18:39.02 spid111 * 模块基端大小 2009-11-10 12:18:39.02 spid111 * sqlservr 01000000 02C09FFF 01c0a000 2009-11-10 12:18:39.02 spid111 * ntdll 7C800000 7C8C1FFF 000c2000 2009-11-10 12:18:39.02 spid111 * kernel32 77E40000 77F41FFF 00102000

答案1

UspSelNex——当您遇到问题时,这是一个始终运行的存储过程吗?

相关内容