SQL 2008 SP2 找不到SQL Server Engine

原文:SQL 2008 SP2 找不到SQL Server Engine

最近我有个客户碰到一个很奇怪的问题。他安装SQL server 2008 SP2的时候, SP2的安装程序无法找到SQL server。界面如下:

正常的界面应该是这样的:

你可以从上图看到, 上面列出了我机器上的SQL 实例SQLEXPRESS。 那么客户的机器上为什么就不能列出呢?

我首先考虑是不是下载的SP2版本不对?仔细核查了下,客户的SQL server 是x64版本的,而下载的SP2也是64bit的版本。所以补丁没有问题。

接着我又检查SQL server 的版本,是不是已经打过补丁了呢?查看Errorlog:

2011-06-10 00:00:09.09 spid89 Microsoft SQL Server 2008 (RTM) - 10.0.1600.22 (X64)

Jul 9 2008 14:17:44

Copyright (c) 1988-2008 Microsoft Corporation

Enterprise Edition (64-bit) on Windows NT 6.1 <X64> (Build 7600: )

恩,是10.0.1600.22, 是RTM版本,确实没有打过任何补丁。

那么会不会是SQL server 的注册表有问题,导致SP2找不到SQL server实例呢?

我使用ProcessMonitor 这个工具来分析SP2 setup程序访问过的注册列表,也没有发现特别的问题。我甚至导出下面SQL server 相关的注册表:

a) HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall

b) HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Installer

c) HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server

我仔细把上面的注册表和正常的机器的注册表对比了下,也没有发现问题。注册表好好的。

那么问题究竟出在哪里呢。为什么客户的SP2就是找不到SQLServver的实例呢?

看来需要对SP2的安装过程来个彻底研究。

大体的SP2安装流程是这样的:

1)      首先运行Setup.exe。 它检查.NET和 MSI 运行环境是否符合条件。这是因为SP2是.NET程序,需要.NET和MSI的支持。

2)      接着setup100.exe 运行。它主要用来运行预先定义的一些rules。比如OS的版本是否对,WMI服务是否能够访问等等。有很多这样的rules,比如如下的截图:

3)      再次运行setup100.exe, 执行SP2的预先定义的action.比如 InitializeMsiExtension,RunDiscoveryAction,ValidateFeatureSettings 等。执行完毕SP2旧安装好了。

根据我们的case,是SP2无法找到SQL实例。DisCovery动作是列出机器上所有的SQL server 产品。那么应该在RunDiscoveryAction 这个动作里面找不到SQL server。 Discovery动作有日志么,如有则它在哪里呢?

很幸运,这个动作的结果在%programfiles%\Microsoft SQL Server\100\Setup Bootstrap\Log\<YYYYMMDD_HHMM>\Datastore\Datastore_Discovery.xml里面。这是个XML文件。我们具体来比较这个文件和正常情况下的区别。找到了!!下面的installedstate 和FeatureState正常情况下值是3或者5,而不是1:

这些值是啥含义呢:

1--> 表示产品处在“建议”状态,是不正常的状态。

3--> 表示产品已安装在本地。

5--> 缺省状态。表示产品已安装。

那么问题现在就变简单了。为什么状态是1呢?能够改变它么?SP2是如何得到这个FeatureState的呢?经过调试跟踪setup100.exe 终于发现它是调用MsiQueryFeatureStateEx()函数得到的。 经过仔细衡量风险我直接写了个程序调用MsiConfigureFeature()把FeatureState 改为3然后再安装,嘿,一切很好。SP2成功安装。

时间: 2024-10-11 23:17:52

SQL 2008 SP2 找不到SQL Server Engine的相关文章

sql server 2008 之找不到SQL Server Management Studio的处理方法

虽然Sql server管理工具SQLManagementStudio2008一款功能强大的Sql server管理工具,但对于要更新这个工具的人来说最重要的一点恐怕是因为SQL Server 2008的数据库管理只能用这些更高版本的工具才能兼容.要安装这个系列的工具远不如老版本的轻松,特别是在安装过程中需要反复检测和更新系统的环境,更是有的时候有些系统问题是不可修复的. 下面就介绍该Sql server管理工具的安装过程供参考. 果你用的是Visual Studio 2010, 那么需要自行安

安装SQl 2008为SQL Server代理服务提供的凭据无效

sql server 2008 代理服务提供的凭据无效 sql server 2008 代理服务提供的凭据无效 在Windows Server 2008安装SQL Server 2008出现的问题: 安装时在"服务器配置"环节出现以下问题: 为sql server代理服务提供的凭据无效 为sql server服务指定的凭据无效 为analysis services服务提供的凭据无效 为reporting services服务提供的凭据无效 为integration services服务

使用SQL Database Migration Wizard把SQL Server 2008迁移到Windows Azure SQL Database

本篇体验使用SQL Database Migration Wizard(SQLAzureMW)将SQL Server 2008数据库迁移到 Azure SQL Database.当然,SQLAzureMV还可以把SQL Server 2005/2012/2014迁移到Azure SQL Database. SQLAzureMV有几个版本:1.SQLAzureMW v3x 适用于 .NET Framework 3.5 和 SQL Server 2008 R2 SP1 2.SQLAzureMW v4

安装 SQL Server 2008 时提示需要删除 SQL Server 2005 Express 工具

已安装 SQL Server 2005,安装 SQL Server 2008 时提示需要删除 SQL Server 2005 Express 工具 错误提示:已安装 SQL Server 2005 Express 工具.若要继续,请删除 SQL Server 2005 Express 工具 解决方案: 修改注册表: 32位路径:HKLM\Software\Microsoft\Microsoft SQL Server\90\Tools\ShellSEM,把ShellSEM重命名即可 64位路径:H

SQL SERVER 2008配置Database Mail –用SQL 数据库发邮件

SQL SERVER 2008配置Database Mail –用SQL  数据库发邮件 https://blogs.msdn.microsoft.com/apgcdsd/2011/06/28/sql-server-2008database-mail-sql/ 原文来自:http://blog.sqlauthority.com/2008/08/23/sql-server-2008-configure-database-mail-send-email-from-sql-database/  Aug

解决 安装SQl 2008为SQL Server代理服务提供的凭据无效

sql server 2008 代理服务提供的凭据无效 sql server 2008 代理服务提供的凭据无效 在Windows Server 2008安装SQL Server 2008出现的问题: 安装时在"服务器配置"环节出现以下问题:为sql server代理服务提供的凭据无效为sql server服务指定的凭据无效为analysis services服务提供的凭据无效为reporting services服务提供的凭据无效为integration services服务提供的凭据

sql 2008 链接服务器到 sql 2000

sql server 2008 (x64)上做链接服务器,链接sql server 2000(x86)上的数据库,出现如下错误: 链接服务器"(null)"的 OLE DB 访问接口 "SQLNCLI10" 返回了消息 "未指定的错误".链接服务器"(null)"的 OLE DB 访问接口 "SQLNCLI10" 返回了消息 "在该服务器上找不到完成该操作所需的存储过程.请与系统管理员联系.&qu

安装sql 2008步骤以及所遇到的问题

下载网址:http://www.xiazaiba.com/html/4610.html 安装步骤: 1.  在Windows7操作系统系,启动Microsoft SQL 2008安装程序后,系统兼容性助手将提示软件存在兼容性问题,在安装完成之后必须安装SP1补丁才能运行,如图1-1所示.这里选择"运行程序"开始SQL Server 2008的安装. 注:此时可能会出现(sql server安装程序遇到以下错误,在创建窗口句柄之前,不能在控件上调用Invoke或BeginInvoke)的

SQL 2008升级SQL 2008 R2完全教程或者10.00.1600升级10.50.1600

今天将由于需要就将我的SQL 2008升级到SQL 2008 R2. 说到为什么要升级是因为,从另一台机器上备份了一个数据库,到我的机器上还原的时候提示“System.Data.SqlClient.Sqlerror:该数据库是在运行版本10.50.2500的服务器上备份的,该版本与此服务器(运行版本10.00.1600)不兼容.请在支持该备份的服务器上还原数据库,或者使用与此服务器兼容的备份.” 经过一番查证得知: 所谓的10.00.1600其实就是SQL 2008 10.50.1600其实就是