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 免費下載全部這些版本。

相關文章
相關標籤/搜索