SQL Server 2005
安装SP4失败原因分析
黄  健
2012年2月17日

1 问题的提出
SQL Server 2005安装Service Pack 4时提示安装失败,无法升级。
2 问题分析
经过反复尝试发现并不是所有计算机都无法安装SQL Server 2005 Service Pack 4,有的计算机可以安装,而且非常顺利,有的计算机则不可以安装。
通过对比两类计算机发现:能够安装SQL Server 2005 Service Pack 4的计算机都是从SQL Server 2005 Service Pack 3升级到Service Pack 4;不能安装的计算机上则是从SQL Server 2005 Service Pack 2直接升级到Service Pack 4。因此首先怀疑SQL Server 2005 Service Pack 4要求必须先安装Service Pack 3。但是实验发现,不能安装Service Pack 4的计算机同样也不能安装Service Pack 3,说明版本高低不是造成错误的原因。
继续对比两类计算机发现:能够升级到SQL Server 2005 Service Pack 4的计算机都同时安装有SQL Server 2005服务器端和客户端软件;不能升级的计算机上则仅安装了SQL Server 2005客户端软件,没有安装服务器端软件。查看日志,有如下描述:
产品: Microsoft SQL Server 2005 Notification Services -- 错误 29549。无法在 COM+ 目录中安装和配置程序集 C:\Program Files\Microsoft SQL Server\90\NotificationServices\9.0.242\Bin\ificationservices.dll。
查阅微软关于“错误 29549”的技术文档(support.microsoft/kb/2565113)可知,安装SQL Server 2005 Service Pack 4时需要在数据服务器上创建tempdb数据库,安装用户必须对存放数据文件和日志文件的文件夹具有管理权限(这里的管理权限是Windows管理权限,不是数据库的管理权限)才能正常安装。
安装sql server数据库没到如果在一台计算机上同时安装SQL Server 2005服务器端和客户端软件,则该计算机就是数据服务器,安装用户就是数据服务器的管理员,对存放数据文件和日志文件的文件夹具有管理权限,所以能够顺利安装SQL Server 2005 Service Pack 4。
如果计算机上仅安装SQL Server 2005客户端软件,该计算机不是数据服务器,SQL Server 2005 Service Pack 4将尝试在远程数据服务器上创建tempdb数据库。此时,如果安装用户不具有远程数据服务器上存放数据文件和日志文件的文件夹的管理权限,则安装失败。
3 解决方案
这个问题是微软已经确认的一个bug,为此微软提供了两套解决方案,其中第一套方案经过验证,确实可行,第二套方案未经验证,仅列在此处备用。
方法1:使用SQL Server Management Studio将SQL Server 2005存放数据文件和日志文件的默认文件夹设置为自己拥有管理权限的文件夹。首先启动SQL Server Management Studio,以数据库管理员身份连接到远程数据服务器:
1. 在对象资源管理器中,右键单击一个数据服务器,选择属性;
2. 单击左侧的数据库设置;
3. 设置数据库默认位置,如下图。
方法2.修改注册表。
1.    Start Registry Editor () from the command line.
2.    Locate and then click the following registry subkey:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\<MSSQL.x>\MSSQLServer
Note In this registry subkey, <MSSQL.x> represents the corresponding value for your system. To obtain this value, locate and then click the following registry subkey:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\Instance Names\SQL\
3.    In the right panel, click the DefaultData registry entry and enter a valid path (if it is pointing to an incorrect location).
4.    In the right panel, click the DefaultLog registry entry and enter a valid path (if it is poin
ting to an incorrect location).
SecurityNote: The best practice for protecting your data files and log files is to ensure that they are protected by access control lists (ACLs). The ACLs should be set on the directory root under which the files are created
4 结论
SQL Server 2005 Service Pack 4安装程序存在Bug,对于单独安装SQL Server 2005客户端的计算机需要手工设置,才能正常安装。
微软产品经常存在Bug,最佳解决途径是:首先查看错误日志,到错误代码;然后以错误代码作为关键字,利用搜索引擎查解决方案。在到的所有方案中,优先采用微软提供的官方解决方案。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。