3.0 安装问题
本节详细介绍 SP1 的安装问题。具有高级服务的 SQL Server 2005 Express Edition 包含 SQL Server 2005 Service Pack 1 中所包含的所有更新。
注意: |
---|
除非另有说明,这些问题仅适用于安装新的 SQL Server Express 实例的情况。
|
3.1 现有的 SQL Native Client 安装可能导致安装失败
安装可能失败并回滚,同时显示以下错误消息:“找不到产品 Microsoft SQL Native Client 的安装包。请尝试使用安装包“sqlncli.msi”的有效副本重新安装。”若要解决此问题,请使用“添加或删除程序”卸载 SQL Native Client。
3.2 系统配置检查器失败并显示“性能监视器计数器检查失败”消息
在开始安装 SQL Server 之前,系统配置检查器 (SCC) 会验证性能监视器计数器注册表项的值。如果 SCC 无法验证现有的注册表项,或者 SCC 无法运行 Lodctr.exe 系统程序,则 SCC 检查会失败,并且安装程序会被阻止。若要完成安装,您必须手动增加注册表项。
注意: |
---|
如果注册表编辑不当,则可能会导致严重的问题并可能需要您重新安装操作系统。Microsoft 不保证可以解决因注册表编辑不当而导致的问题。在编辑注册表之前,请备份所有重要数据。有关如何备份、恢复和编辑注册表的信息,请参阅 Microsoft 知识库文章
|
在任务栏中,依次单击“开始”和“运行”,在“运行”文本框中键入 regedit.exe,再单击“确定”。
导航到以下注册表项:[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Perflib]。查找下列项:
- "Last Counter"=dword:00000ed4 (5276)
- "Last Help"=dword:00000ed5 (5277)
- "Last Counter"=dword:00000ed4 (5276)
验证值。上一步 (5276) 中的 Last Counter 值必须与以下注册表项内 Perflib\009 中 Counter 项的最大值相等,上一步 (5277) 中的 Last Help 值必须与以下注册表项内 Perflib\009 中 Help 项的最大值相等:[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Perflib\009]。
注意: “009”是用于英语(美国)的项。 如有必要,请修改 \Perflib 项中 Last Counter 和 Last Help 的值。在右窗格中,右键单击 Last Counter 或 Last Help,选择“修改”,单击 Base = Decimal,在“值”数据字段中设置值,再单击“确定”。如有必要,请对其他项重复此操作,然后关闭注册表编辑器。
重新运行 SQL Server Express 安装程序。
3.3 如果禁用了 Windows Server 2003 的加密服务,则安装将失败,并出现 Windows 徽标要求对话框
Windows 加密服务提供程序 (CSP) 是执行身份验证、编码和加密服务的代码,基于 Windows 的应用程序通过 Windows Server 2003 中的 CryptoAPI 访问这些服务。如果停止或禁用 CSP 服务,则 SQL Server 安装程序会失败并显示“Windows 徽标要求”消息。
注意: |
---|
在 Windows Server 2003 故障转移群集中运行 SQL Server 安装程序之前,必须在所有群集节点上启动 CSP 服务。
|
在“控制面板”中,打开“管理工具”,再双击“服务”。
在“名称”列中,右键单击“加密服务”,再单击“启动”。
关闭“服务”。
运行安装程序。
3.4 Windows 未完全启用 MSDTC
由于未在 Windows 中完全配置 Microsoft 分布式事务处理协调器 (MS DTC),因此,应用程序可能无法在分布式事务中登记 SQL Server Express 资源。此问题会影响使用分布式事务的链接服务器、分布式查询以及远程存储过程。为了避免出现此类问题,您必须在安装有 SQL Server Express 的服务器中完全启用 MS DTC 服务。
在“控制面板”中,打开“管理工具”,再双击“组件服务”。
在左窗格的“控制台根目录”中,单击“组件服务”,再展开“计算机”。
右键单击“我的电脑”,再单击“属性”。
在 MSDTC 选项卡中,单击“安全配置”。
在“安全设置”下,选中所有复选框。
验证是否已将“DTC 登录帐户”名称设置为 NT AUTHORITY\NetworkService。
3.5 “强制加密”配置可能导致 SQL Server Express 安装失败
如果现有的 SQL Server 客户端安装配置为启用了“强制加密”选项,则安装程序可能会失败。若要解决此问题,请在所有 SQL Server 客户端上禁用此选项。对于 SQL Server 2000 中的 Microsoft 数据访问组件 (MDAC) 客户端,请使用 SQL Server 2000 客户端网络实用工具。对于 SQL Native Client,请使用“添加或删除程序”卸载 SQL Native Client。
3.6 安装 SQL Server 2000 的默认实例可能会禁用 SQL Server Express
如果您的计算机已安装 SQL Server 2000 管理工具和 SQL Server Express 的默认实例,则可以使用 SQL Server 安装程序安装 SQL Server 2000 的默认实例。但是,这样做会禁用已安装的 SQL Server Express 实例。因此,如果计算机上已安装 SQL Server 2000 管理工具和 SQL Server Express 的默认实例,则不要安装 SQL Server 2000 的默认实例。
3.7 在 Windows 域控制器上安装 SQL Server Express
安全说明: |
---|
我们不建议在域控制器中运行 SQL Server Express。
|
可以在 Windows 域控制器中安装 SQL Server Express;但是,SQL Server Express 无法在 Windows Server 2003 域控制器中像本地服务或网络服务那样运行。SQL Server 服务帐户应以 Windows 域用户帐户的身份运行。您也可安装 SQL Server 服务帐户以本地系统的身份运行,但是不建议使用此选项。
不要在安装完 SQL Server Express 之后更改服务器的角色。例如,如果您在成员服务器中安装了 SQL Server Express,则不要使用 Dcpromo 工具将该服务器提升为域控制器。或者,如果您在域控制器中安装了 SQL Server Express,则不要使用 Dcpromo 将该服务器降级为成员服务器。如果在安装完 SQL Server Express 之后更改服务器的角色,便会导致功能丢失,不支持这样做。
3.8 维护模式提示需要 Setup.exe 的路径
如果在维护模式下安装新的 SQL Server Express 组件,则系统会提示需要 SQL Server Express 安装介质上的 Setup.exe 的位置。指定该文件位置时,路径中一定要包含“Setup.exe”。例如,路径“D:\”将失败,而“D:\Setup.exe”将成功。
3.9 排除安装命令 Shell 脚本失败故障
路径变量中包含括号时,Setup 命令 shell 脚本可以生成 Windows 脚本错误。出现该错误的原因是命令 shell 脚本不支持路径变量中包含的括号。在将 32 位组件安装到 64 位计算机的 Windows (WOW64) 32 位子系统中的 Windows 时可能会出现该错误。例如,下列路径值为“C:\Program Files (x86)\”的脚本将生成一个错误,因为 shell 脚本解释器会将扩展的 PATH 变量中的括号错误地解释为 IF/ELSE 语句的一部分:
IF "%SOME_PATH%" == "" ( SET PATH=%PATH%;%PATH_A% ) ELSE ( SET PATH=%PATH%;%PATH_B% ) |
若要解决此问题,请更改该脚本以删除括号。例如:
IF "%SOME_PATH%" == "" set PATH=%PATH%;%PATH_A% IF NOT "%SOME_PATH%" == "" set PATH=%PATH%;%PATH_B% |
或者从路径中删除包含括号的 SQL 项。
3.10 现有的 Report Server 数据库文件可能导致安装失败
通过使用 SAVESYSDB 参数从命令提示符运行安装程序来卸载 SQL Server Express 实例(该实例承载 Reporting Services 实例的报表服务器数据库)时,报表服务器数据库文件和其他系统数据库文件一起保留。默认情况下,这些文件将命名为 ReportServer$Instancename 和 ReportServer$InstancenameTempdb。如果使用 USESYSDB 安装参数重新安装 SQL Server Express,并指定该实例承载报表服务器数据库,则安装程序将由于这些数据库文件已经存在,而无法重新创建。
若要避免该问题,请执行下列操作之一:
- 在卸载之前使用 SAVESYSDB 删除报表服务器数据库。
- 使用 SAVESYSDB 安装参数时,不要与 SQL Server 同时安装 Reporting Services。
- 在安装 Reporting Services 时,使用 RSDATABASENAME 安装参数指定报表服务器数据的新名称。
3.11 从 MSDE 2000 升级时的数据库兼容级别设置
本问题仅适用于将 MSDE 2000 实例升级到具有高级服务的 SQL Server Express 的情况。
将 MSDE 2000 实例升级到具有高级服务 SQL Server Express 时,数据库兼容级别仍保留为 80,以便能与现有 MSDE 2000 应用程序向后兼容。这种向后兼容级别会禁用某些具有高级服务的 SQL Server Express 的新功能。有关详细信息,请参阅 SQL Server 2005 联机丛书中的“sp_dbcmptlevel”参考主题。
3.12 如果系统数据库目录中存在单引号,则安装可能失败
本问题仅适用于将 SQL Server Express 实例升级到具有高级服务的 SQL Server Express 的情况。
将 SQL Server Express 实例升级到具有高级服务的 SQL Server Express 时,如果安装系统数据库的名称中存在单引号,则安装可能失败。如果安装失败,则必须将系统数据库移至名称中没有单引号的目录。有关移动系统数据库的详细信息,请参阅 SQL Server 2005 联机丛书中的“移动系统数据库”。
3.13 对 ALTER DATABASE 的限制可能导致升级失败
本问题仅适用于将 SQL Server Express 实例升级到具有高级服务的 SQL Server Express 的情况。
将 SQL Server Express 实例升级到具有高级服务的 SQL Server Express 时,安装程序将升级系统数据库。如果已对 ALTER DATABASE 语法实施了限制,则此升级可能失败。对 ALTER DATABASE 的限制可能包括以下内容:
- 显式拒绝 ALTER DATABASE 语句。
- 针对 ALTER DATABASE 的数据定义语言 (DDL) 触发器回滚包含 ALTER DATABASE 语句的事务。
如果存在 ALTER DATABASE 限制,则安装程序无法升级系统数据库。您必须禁用这些限制,然后重新运行安装程序。
3.14 不支持升级到具有高级服务的 SQL Server Express 的最终发布版本
具有高级服务的 SQL Server Express 的预发布版本无法升级到最终发布版本。安装最终发布版本之前,必须卸载具有高级服务的 SQL Server Express 的预发布版本。
注意: |
---|
如果计算机中已安装 Visual Studio 2005,则在卸载此计算机上具有高级服务的 SQL Server Express 时,必须先修复 Windows 注册表,然后才能使用 Visual Studio 数据集设计器。有关详细信息,请参阅知识库文章
|
3.15 用户实例正在运行时,SQL Server Express 无法升级。
用户实例正在运行时,临时数据文件夹中的多个数据库文件将被锁,并且无法进行任何升级。若要升级 SQL Server Express 安装,必须手动关闭正在运行的用户实例。
连接到 SQL Server Express 的父级实例,然后通过运行下列语句禁用用户实例:
EXEC sp_configure ‘user instances enabled’,0 RECONFIGURE
运行下列语句,确定所有活动用户实例的管道名称:
SELECT owning_principal_name, instance_pipe_name FROM sys.dm_os_child_instances WHERE heart_beat = ‘alive’
使用 instance_pipe_name 连接到每个用户实例,然后运行下列语句手动关闭实例:
SHUTDOWN WITH NOWAIT
应用更新。
运行下列语句,重新启用用户实例:
3.16 使用带有用户实例的 SQL Server 身份验证时,升级可能会失败
本问题仅适用于将 SQL Server Express 实例升级到具有高级服务的 SQL Server Express 的情况。
当安装了具有高级的 SQL Server Express 来升级启用了用户实例的 SQL Server Express 实例时,必须使用 Windows 身份验证。如果指定了 SQL Server 身份验证,则升级可能失败。