SQL Server 2005安装失败,ERROR:29534

本文详细介绍了在安装SQL Server 2005 SP4时遇到错误故障的排查过程,包括从summary.txt中获取错误信息、分析SQL9_Hotfix_KB2463332_sqlrun_sql.msp.log文件,最终定位到tempdb.mdf文件被设置为压缩导致的问题,并提供了有效的解决方法。

问题描述

==========

SQL Server 2005安装SP4时发生错误

故障排查

==========
在summary.txt存在以下错误信息:

Product                   : Database Services (MSSQLSERVER)

Product Version (Previous): 5000

Product Version (Final)   :

Status                    : Failure

Log File                  : C:/Program Files/Microsoft SQL Server/90/Setup Bootstrap/LOG/Hotfix/SQL9_Hotfix_KB2463332_sqlrun_sql.msp.log

Error Number              : 29534

Error Description         : MSP Error: 29534  Service 'MSSQLSERVER' could not be started. Verify that you have sufficient privileges to start system services. The error code is (1814) The specified resource name cannot be found in the image file

查看SQL9_Hotfix_KB2463332_sqlrun_sql.msp.log后,存在以下错误信息:

Failed to add file 'C:/Program Files/Microsoft SQL Server/MSSQL.1/MSSQL/LOG/ERRORLOG' to datastore in AddFileToFailureHandling

Service MSSQLSERVER with parameters '-r -f' is being started at Thu Mar 10 15:54:46 2011

Failed to start service MSSQLSERVER. Error code 1814

Service failed unexpectedly (1814)

        Error Code: 0x80070716 (1814)

Windows Error Text: The specified resource name cannot be found in the image file.

  Source File Name: sqlsetuplib/service.cpp

Compiler Timestamp: Sat Sep 18 20:51:30 2010

     Function Name: sqls::Service::Start

Source Line Number: 301

找到Mar 10 15:54:46 2011的ERRORLOG,存在如下错误信息

2011-03-10 15:54:51.55 spid6s      Error: 5118, Severity: 16, State: 1.

2011-03-10 15:54:51.55 spid6s      The file "C:/Program Files/Microsoft SQL Server/MSSQL.1/MSSQL/DATA/tempdb.mdf" is compressed but does not reside in a read-only database or filegroup. The file must be decompressed.

2011-03-10 15:54:51.57 spid6s      Error: 5118, Severity: 16, State: 1.

2011-03-10 15:54:51.57 spid6s      The file "C:/Program Files/Microsoft SQL Server/MSSQL.1/MSSQL/DATA/tempdb.mdf" is compressed but does not reside in a read-only database or filegroup. The file must be decompressed.

2011-03-10 15:54:51.63 spid6s      Error: 1802, Severity: 16, State: 4.

2011-03-10 15:54:51.63 spid6s      CREATE DATABASE failed. Some file names listed could not be created. Check related errors.

2011-03-10 15:54:51.63 spid6s      Could not create tempdb. You may not have enough disk space available. Free additional disk space by deleting other files on the tempdb drive and then restart SQL Server. Check for additional errors in the event log that may indicate why the tempdb files could not be initialized.

这表明tempdb.mdf可能设置了压缩选项。

解决办法

==========

1.找到C:/Program Files/Microsoft SQL Server/MSSQL.1/MSSQL/DATA/tempdb.mdf,右键->属性->高级->查看“压缩该磁盘以节省空间”的选项是否被勾选,如果勾选,则取消这个选项。

2.用相同办法查看该活页夹中的其他数据库文件,是否也勾选了这个选项(如果文件名为蓝色,可能该文件选择了压缩选项),并改正。

3.查看C盘的磁盘空间是否不足,如果不足,请确保具有足够的磁盘空间。(不要通过勾选“压缩磁盘”来节省空间,如果确实空间不够,请与我联系,我将帮助您一同将数据文件迁移至其他磁盘。)

4.重新安装SQL Server SP4

SQL Server 错误 233 表示连接失败,具体错误信息为 "No process is on the other end of the pipe"。该错误通常发生在客户端尝试通过命名管道协议连接 SQL Server 时,但服务器端未启用命名管道,或者 SQL Server 服务未运行。 ### 原因分析 1. **命名管道未启用**:SQL Server 默认可能未启用命名管道协议,尤其是在远程连接的情况下。 2. **SQL Server 服务未运行**:如果 SQL Server 服务启动,则无法建立连接。 3. **网络配置问题**:客户端尝试通过命名管道连接,但服务器未配置为接受该协议。 4. **防火墙设置**:防火墙可能阻止了命名管道或 TCP/IP 连接所需的端口[^1]。 ### 解决办法 1. **启用命名管道协议**: - 打开 SQL Server 配置管理器。 - 展开 "SQL Server 网络配置",选择 "协议"。 - 右键点击 "命名管道",选择 "启用"。 - 重启 SQL Server 服务以应用更改。 2. **检查 SQL Server 服务状态**: - 打开 "服务" 管理工具。 - 确保 "SQL Server (MSSQLSERVER)" 服务正在运行。如果没有运行,启动服务。 3. **配置客户端协议**: - 打开 SQL Server 配置管理器。 - 进入 "SQL Native Client 配置" 或 "SQL Server Native Client"(取决于使用的客户端版本)。 - 在 "客户端协议" 中,确保 "TCP/IP" 被启用,并将其优先级设置为高于命名管道。 - 重启客户端应用程序或计算机以确保更改生效[^1]。 4. **检查防火墙设置**: - 确保防火墙允许 SQL Server 使用的端口(通常是 1433)通过。 - 如果使用命名管道,确保 445 端口未被阻止。 5. **使用 TCP/IP 协议连接**: - 在连接字符串中明确指定使用 TCP/IP 协议。例如,在连接字符串中添加 `Network Library=DBMSSOCN`,以强制使用 TCP/IP 协议进行连接。 6. **重新安装 SQL Server 组件**: - 如果上述方法均无效,可以尝试卸载并重新安装相关的 SQL Server 组件,确保在安装过程中正确配置网络协议[^2]。 ### 示例连接字符串 如果希望强制使用 TCP/IP 协议进行连接,可以在连接字符串中指定如下格式: ```python import pyodbc conn = pyodbc.connect('DRIVER={SQL Server};SERVER=your_server_name;DATABASE=your_database;UID=your_username;PWD=your_password;Network Library=DBMSSOCN') ``` ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值