一台业务服务器,最近出现运营系统进程老是无故100%的CPU占用,导致系统执行效率低下。经过厂商排错确认是由于服务器上的 SQL Server 2000 引起的,停止与 SQL Server 2000 的挂接,运营系统故障消失。那么,接下来的工作就是要对 SQL Server 2000 作 Troubleshooting 。
        可用的参考信息非常少,因为日志中始终只有如下两个日志:

事件类型: 警告
事件来源: MSSQLServer
事件种类: (8)
事件 ID: 19011
日期:  2008-8-28
事件:  18:27:58
用户:  N/A
计算机: FAMILY-2OPTJ9U4
描述:
SuperSocket 信息: (SpnRegister) : Error 1355。

有关更多信息,请参阅在 http://go.microsoft.com/fwlink/events.asp 的帮助和支持中心。

事件类型: 错误
事件来源: MSSQLServer
事件种类: (8)
事件 ID: 19011
日期:  2008-8-28
事件:  18:27:58
用户:  N/A
计算机: FAMILY-2OPTJ9U4
描述:
SuperSocket 信息: gethostbyname(MSAFD Tcpip [TCP/IP]) : Error 11004。

有关更多信息,请参阅在 http://go.microsoft.com/fwlink/events.asp 的帮助和支持中心。

        根据微软的相关KB及搜索出来的其它资料均进行了测试,结果都以失败告终。SQL Server 也重新进行了安装。经过一番测试,发现 SQL Server 2000 始终无法套接到 TCP/IP 上,自然也就无法绑定 TCP1433,经过两天的摸索最终重点放在了 SuperSocket 信息: (SpnRegister) : Error 1355 ,这条警告日志经常出现在工作组环境之下,微软就此问题已经证实属于产品问题。由于另外一个日志中也提到了有关主机名的问题“gethostbyname”,那么可以断定由于 SQL Server 无法正常获取注册到的 SPN 而导致最终的失败,继续详细检查系统,发现当前计算机名与 SQL Server 下连接的名称不符,即当前计算机名是 NS4,而 SQL Server 连接的是 FAMILY-2OPTJ9U4,难道问题出在这里。随即将 SQL Server 安全卸载,并将计算机名重新进行命名。故障消失……
        回忆这个问题起因,让人费解,因为在修改计算机名是很早以前做的,而之后 SQL Server 运行也一直良好,不过总算问题得到了最终的解决!计算机名在本场景中不属于必要的,所以恢复旧计算机名不会对运营系统造成干扰。有机会,我将使用 netdom 重命名计算机名再次测试。

      SQL Server 2000,并安装了SP4,操作系统平台为Windows Server 2003 with SP2,之初安装 SQL Server 2000 时使用的是 SYSTEM 权限,后来考虑到安全问题直接通过服务管理器修改了 SQL Server 的服务运行帐号,一切看似都很顺利。最近由于涉及到定时备份数据库的工作,所以需要使用 SQL Server Agent 服务,可服务总是无法正常启动,除了 SQL Server Log 中记录有帐号登录失败的信息,其他则没有更多的有价值的信息供参考!因为 SQLSERVERAGENT 服务和 SQLSERVER 服务是使用同一个服务帐号,而 SQLSERVER 启动运行都正常,无奈求助于微软新闻组,得到的答案也是帐号密码有错误才会造成。之后几经调试都未成功,后来无意中在企业管理器中查看 SQLSERVER 的安全性发现服务帐号的“服务器访问”设置为“通过组成员资格”,将其修改为“允许访问”后,SQLSERVERAGENT 服务启动正常了!

      回忆之前的经历,目录权限检查过,账号密码也检查过,唯独忽略了这里。绕了好大的一圈,因为不是主要做 SQL Server 工作的,所以我暂时很难解释这个问题的缘由和所以然!问题重现步骤还有待试验,不过应该跟我手工加固 SQL Server 安全有关!

      已经不是一次两次遇到的这个问题了!很奇怪机房那边安装系统后我远程安装SQL2000就会出现序列号无法验证的问题,今天看到微软发布了解决此问题的KB,于是简单翻译一下转载到这里。

解决办法:

打开注册表编辑器并定为到:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager

找到名为“SafeDLLSearchMode”的DWORD值,切换修改他的值 0 或 1,如果没有则创建这个DWORD值。

原文出处:KB555496

分页: 2/4 第一页 上页 1 2 3 4 下页 最后页 [ 显示模式: 摘要 | 列表 ]