Sql Server 2008开发版(Developer Edition)过时升级企业版(Enterprise Edition)失败后安装学习版(Express Edition)

   最近一个多月,甚是悠哉,无事可作。上线的网站系统也没接到客户的反馈,反而以为无聊之极了。上周五早上,一上QQ,就收到客户发来消息,管理平台没法登录了。内心一惊,立马开始查找故障缘由。翻看了系统日志,提示数据库链接超时(见下图)。web

        打开vs,运行程序,一样报错,数据库链接超时。找到报错位置的SQL语句,只是很简单的一条查询语句。链接字符串也没有问题,怎么会报错呢?百思不得其解,因而乎,打算到查询分析器执行一下这条SQL语句,看看结果如何。接着,出现了下面的状况sql


        搜迪斯内,原来是Sql Server 2008过时了!通常咱们会安装开发版或者企业版的试用版Sql Server 2008,试用期是180天。一般的作法是,去百度搜一个密钥,运行Sql Server 2008的安装程序,选择版本升级,下面的步骤和全新安装同样,输入企业版或者开发版密钥便可。就在这个问题出现的前几天,我本机上的Sql Server 2008也过时了,我就是经过输入企业版密钥版本升级解决的。
  Sql Server 2008安装密钥
开发版(Developer): PTTFM-X467G-P7RH2-3Q6CG-4DMYB
企业版(Enterprise): JD8Y6-HQG69-P9H84-XDTPG-34MBB  
 
 
 图片
 
  通常来讲,这些步骤完成以后,Sql Server 2008就能够继续使用了。 我在升级过程当中也没遇到什么问题,顺利升级完成。然而,当我再次打开Sql Server Management Studio的时候,仍是提示版本过时。没遇过这种状况,只好百度解决办法。看到网上有一种方案是,第一次正常升级,而后打开注册表,找到 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\100\ConfigurationState,把键值CommonFiles的值改为3,而后再次重复一次升级,升级时选择只升级共享组件便可。因而,我立马打开注册表修改了键值,而后开始再次进行升级,结果安装过程报错,报错信息没法生成临时类(result=1)。error CS1567:生成Win32资源出错:另外一个程序正在使用此文件,进程没法访问。(见下图)。怀疑多是服务器上安装的安全狗致使的,因而乎直接卸载了,终于不报这个错误了。这里多是由于安全防御软件的安全策略禁止了在系统敏感目录下建立文件致使的。假若遇到相似没法建立文件的权限错误,请关闭安全防火软件或关闭系统防火墙。
图片
    然而,这个问题解决以后又出现了其余的奇怪错误信息“参数错误。”(见下图)。无论怎么样都不行,就连修复程序也无法进行下去。  图片
  这里补充一下安装中可能遇到状况,例以下图这种错误提示:因为登录失败而没法启动服务。这是由于升级的实例MSSQLSERVER主服务没有启动致使的。我这里没法启动的缘由是,登录身份帐号登录失败,致使服务启动。这是因为安全狗的帐号保护禁用了服务登录所使用的帐号,这个帐号是在Sql Server安装时自动建立的,建议禁用掉,使用本地系统帐号登录便可。




图片
 
图片
 
 
         不管是升级Sql Server仍是修复Sql Server默认实例MSSQLSERVER,皆以失败了结。只好寻求其余解决办法:安装免费受权的Express Edition(学习版)。在微软中国网站查询一下各版本的受权状况:http://www.microsoft.com/china/sql/2008/howtobuy/(以下图)。
图片 
  接着,在微软中国官网下载了Sql Server 2008 Express( 以下图),进行安装,安装实例名为SQLEXPRESS。安装过程,一切正常

图片
  
可是,问题又来了。打开Sql Sserver Management Studio时,依旧提醒版本过时。为何会这样呢?由于MSSQLSERVER和SQLEXPRESS两个实例是共享的同一个SSMS。接着尝试单独下载Express的SSMS进行安装,以下图。


  安装过程和安装新实例SQLEXPRESS是差很少,安装时选择向实例SQLEXPRESS中添加功能(以下图)。 
图片
 
图片
   安装完成,悲剧依旧,在程序列表里面已经找不到实例SQLEXPRESS的独立SSMS,看来这个SSMS仍是和实例MSSQLSERVER共享的。这意味着没法在服务器上打开查询分析器了。因而乎,尝试在本机上远程登陆数据库。尽管版本已通过期,可是远程登录实例MSSQLSERVER成功。这里思考:虽然服务器没法打开SSMS,可是本机能够远程登陆,只须要把实例MSSQLSERVER的数据库导入到实例SQLEXPRESS便可。经过IP/实例名,即IP/SQLEXPRESS,使用安装时设置的sa帐号登录。悲剧的,登录失败,并且是你们都很眼熟的40错误(见下图)。
  经过查看配置管理器发现,实例SQLEXPRESS的数据库主服务没有开启,尝试开启却失败。更换其余身份进行登录,一样没法启动服务。百思不得其解,百度一番,怀疑多是由于服务端口冲突致使的。打开Sql Server配置管理器,将实例SQLEXPRESS的网络配置中的协议开启状态配置的和实例MSSQLSERVER的同样便可。重点在于实例SQLEXPRESS的网络配置中TCP/IP协议的配置内容,最后一项中的TCP端口为空,且动态端口为2104(这个是安装时随机的端口,可能每一个人的都不太同样。)。
  图片

图片
   
  这里将动态端口删除,设置TCP端口为1434(这里随便设置,可是尽量设置大一点的端口,以避免和系统内的其余程序服务所使用的端口冲突)。再去启动实例SQLEXPRESS数据库主服务时,终于成功了。再次经过本机远程登陆实例SQLEXPRESS,也成功了。这里登陆的服务器名能够是IP/SQLEXPRESS或者IP,端口格式,好比IP,1434(见下图)
 
   这样就能够同时登陆两个实例MSSQLSERVER和SQLEXPRESS了(见下图),而后经过Sql Server导入和导出工具,把实例MSSQLSERVER下的数据库迁移到实例SQLEXPRESS中去,最后修改一下web程序的web.config中数据库链接字符串服务器名便可。到此,Sql Server 2008版本过时的问题就解决了。
         补充一些内容,还有一种方式能够实现不须要修改配置文件中的数据库链接字符串,便可保证程序正常运行。那就是将实例MSSQLSERVER的TCP端口修改1434,将实例SQLEXPRESS的TCP端口修改成1433便可。当咱们使用IP访问数据库时,他会经过默认的数据库端口1433链接数据库,通常Sql Server安装的默认实例名都是MSSQLSERVER(Express学习版除外)。咱们把这两个实例的TCP端口对调一下,那么当咱们使用IP访问数据库时,实际上访问的是IP/SQLEXPRESS。这样作能够实现不须要修改程序,便可让程序正常运行。 另外,我这个过程的最后,突然发现Sql Server配置管理器不见了!因而,我使用“SQLServerManager”搜索了一下服务器的文件,找到一个SQLServerManager10.msc的程序,打开以后一样也是Sql Server配置管理器,这个多是安装SQLEXPRESS时安装上去的。
        本来,故事到这里应该是能够结束了的。可是,在我从新使用企业版密钥进行版本升级安装以后,竟然又成功的将实例MSSQLSEREVR升级到了企业版。立马打开Sql Server Management Studio,竟然能够打开了。使用windows身份登陆,成功将两个实例登陆了(见下图)。
  
  万万没想到,转了一大圈以后,又回到了最初的梦想。并且,梦想仍是是实现了。 总结一下:Sql Server版本过时,能够经过网上公开的企业版密钥进行版本升级安装解决,这个过程当中建议关闭全部安全防御软件的防火墙,安全策略,最好是可以退出安全防火软件,中止其服务。遇到错误信息提示,多尝试几回。固然,实在不行,安装一个免费受权的Express学习版也不错,前提是你不须要使用到开发版或企业版中那些高大上的功能,同时你的数据库文件不超过4GB。不然,仍是老老实实安装 Enterprise Edition企业版或者Standard Edition标准版Sql Sever吧。下面摘抄一段来自微软中国官网的文字。
         
        建立网站时,经常须要一个位置存储数据。数据能够是访问者输入的数据、有关产品或服务的信息、新闻文章、讨论或其余全部可能的信息集合。绝大多数网站从数据库读取数据并向数据库写入数据,这种方式彷佛近期内不会有大的变化。

有许多数据库系统可供选择:有收费上千的,也有其余一些免费的,价格不一样,所提供的功能也不一样。Microsoft 的高级数据库解决方案– Microsoft® SQL Server®2008 声名远播。这是一款功能齐全的数据库服务器,服务规模最大,支持高可用性的配置,容错性高,包含规格一流的分析工具。若是您要构建一个服务于上千并发用户的业务关键应用,上述功能对您来讲再合适不过了。可是,对开发一个硬件存储较小的网站而言,这些功能则有些“大材小用”了,您认为呢?数据库

        实际上,SQL Server 2008 有多个版本,以便适用于各类应用场景。对于开发 Web 应用,SQL Server 2008 Express Edition是一个理想选择。它提供了与其余版本的 SQL Server 几乎相同的高级数据库引擎,同时有几个扩展性限制(只能使用单处理器和 1 GB RAM,数据库容量限制为4 GB)。数据库引擎与其余SQL Server 版本彻底兼容,若是客户或主机托管服务提供商要求与 SQL Server Web 版本、标准版或企业版的可扩展性,基于SQL Server Express Edition 构建的任何应用部署到其余生产环境中彻底能够正常运行。(尤为须要注意,SQL Server 2008 Express 与 SQL Server 2008 Web 版的功能匹配。您的托管服务提供商极可能使用该版本,因此您不可能使用托管供应商不支持的功能。)express

        SQL Server Express Edition 与Microsoft 开发工具紧密集成,好比 Visual Studio 和 Visual Web Developer Express,它还支持高级数据类型,好比本机 XML、空间数据和 FILESTREAM 数据等。事实上,当您了解 SQL Server Express 最重要的功能时,您会惊讶的看到,它包括的 SQL Server 功能如此之多,而且不管对于开发和部署,都是免费提供的。windows

有三款 SQL Server Express Edition 版可供选择:安全

·  SQL Server 2008 Express Edition with Tools:该版本包含数据库引擎和 SQL Server Management Studio Basic,该工具包含了建立、编辑和管理数据库所需的全部功能。服务器

·  SQL Server 2008 Express Edition with Advanced Services:该版本包含数据库引擎、Management Studio,以及 Full-text Search(用于搜索文本多的数据)和 Reporting Services(用于根据您的数据建立功能强大的报表)。网络

·  SQL Server 2008 Express Edition (Runtime Only):该版本只包含数据库
引擎。并发

您也能够单独下载 SQL Server Management Studio 2008 Express。若是您已有了 Runtime Only 版本,或者在一台独立计算机安装以进行远程管理,单独下载就颇有价值。工具

能够从 http://www.microsoft.com/express/sql/download 免费下载全部这些版本。

相关文章
相关标签/搜索