Sql Server 2000数据库死锁的解决
昨天下午准备给单位的服务器将趋势杀毒网络版换成服务器版。
因为趋势的杀毒网络版需要一些我以前有在服务器上关掉的一些属性:
一、注册表部分
1.系统自动启用管理共享
2.系统自动启用服务器共享
3.不能隐藏自己的共享文件夹
二、网卡部分
1.要安装NetBios协议
三、服务
1.需要远程注册表修改服务(Remote Registry)必须启动。
四、以前的网络版必须卸载掉
因为要安装趋势杀毒服务版以上的条件缺一不可,在安装过程中服务器就重启好几次,在一次重启中,发现趋势杀毒服务版安装到77%停了下来,在服务器上也登陆不进去,等待了大概3分钟进去后发现MS SQL Server 2000启动不起来。
经过几次重启服务器,MS SQL Server 2000依然不能启动。
察看C:/Program Files/Microsoft SQL Server/MSSQL/LOG下的错误日志,发现其中有一条:
... server 使用 dynamic 锁分配。[2500] 锁块,[5000] 锁所有者块。
我尝试着用单机(参数-m)或者最小模式(参数-f)来启动MS SQL Server 2000,但服务器系统中存在SQLSERVR的进程存在,启动失败。
使用“Windows 任务管理器”不能杀掉此进程,后利用Norton的任务管理器强制杀掉此进程。
C:/Program Files/Microsoft SQL Server/MSSQL/Binn/sqlservr.exe -m -f
以单机、最小模式启动sqlservr,成功。
参看显示日志如下:
... server Warning: -f command line flag used...minimal server configured.
... server SQL Server 正在以优先级“normal”(已检测到 2 CPUs)启动。
... server 已为 thread 模式处理而配置了 SQL Server。
... server 使用 dynamic 锁分配。[2500] 锁块,[5000] 锁所有者块。
... server 由于启动选项的原因跳过了 <a name="MS DTC"></a> 初始化。
... spid4 警告 ******************
... spid4 SQL Server 以单用户模式启动。允许对系统目录进行更新。
然后重启计算机,MS SQL Server 2000启动成功。
事后分析看来这是MS DTC(Microsoft Distributed Transaction Coordinator)冲突,也就是趋势杀毒服务版的安装过程和MS Sql Server 2000启动可能是利用了同一的组件对象模块 (COM),因此产生了事务冲突。
造成MS Sql Server 2000启动的事务冲突死锁。
注:
服务器为IBM xSERVER 235(cpu 2.8G,内存1G,硬盘为3块36G组成的RAID 5)
OS: Win2000 ADVANCE SERVER+SP4,MS SQL Server 2000+SP4(8.00.2039)