Sql Server 2008開發版(Developer Edition)過期升級企業版(Enterprise Edition)失敗後安裝學習版

   最近一個多月,甚是悠哉,無事可做。上線的網站系統也沒接到客戶的反饋,反而覺得無聊之極了。上週五早上,一上QQ,就收到客戶發來消息,管理平臺無法登陸了。心裏一驚,立馬開始查找故障原因。翻看了系統日誌,提示數據庫連接超時(見下圖)。

        打開vs,運行程序,同樣報錯,數據庫連接超時。找到報錯位置的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 Server2008 聲名遠播。這是一款功能齊全的數據庫服務器,服務規模最大,支持高可用性的配置,容錯性高,包含規格一流的分析工具。如果您要構建一個服務於上千併發用戶的業務關鍵應用,上述功能對您來說再合適不過了。但是,對開發一個硬件存儲較小的網站而言,這些功能則有些“大材小用”了,您認爲呢?

        實際上,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 版的功能匹配。您的託管服務提供商很可能使用該版本,所以您不可能使用託管供應商不支持的功能。)

        SQL Server Express Edition 與Microsoft 開發工具緊密集成,比如 Visual Studio 和 Visual Web Developer Express,它還支持高級數據類型,比如本機 XML、空間數據和 FILESTREAM 數據等。事實上,當您瞭解 SQL Server Express 最重要的功能時,您會驚訝的看到,它包括的 SQL Server 功能如此之多,並且無論對於開發和部署,都是免費提供的。

有三款 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 免費下載所有這些版本。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章