Windows XP Windows 7 Windows 2003 Windows Vista Windows教程綜合 Linux 系統教程
Windows 10 Windows 8 Windows 2008 Windows NT Windows Server 電腦軟件教程
 Windows教程網 >> Windows 2003系統教程 >> Windows 2003常見問題解答 >> 在win server 2008中安裝sql 2008的問題解決

在win server 2008中安裝sql 2008的問題解決

日期:2017/1/25 11:50:16      編輯:Windows 2003常見問題解答

 

   以下為通用解決方法,而我在實際安裝win server2008中的注冊表與xp等都不一樣,解決原理跟下面的是一樣的

     

 這種情況下,就要把009中的鍵值原樣在0804中創建一個,再把perflib中的last counter 與lats help按下面方法設置一下就OK了。

 

      在Windows Server 2003 、Windows XP或者Windows 2000中安裝 SQL SERVER 2008 開發版和企業版時,會遇到“性能計數器注冊表配置單元一致性”檢查失敗 的問題(Windows Server 2008 由於暫時沒有環境,尚未測試)

 

(圖一)

安裝提示錯誤信息為:

(圖二)

解決方法:

先根據幫助提示,打開 http://support.microsoft.com/kb/300956, 幫助的文檔是讓你使用安裝光盤重置性能計數器文件,操作步驟比較復雜,可是我並沒有安裝什麼特殊的軟件,而且確定也沒有病毒感染,為什麼性能計數器會損壞 呢,因此決定不到萬不得已暫時不去重置性能計數器,以免擴大問題的影響面。(Microsoft的Help文檔經常是答非所問....)

 

果然,經翻閱文檔,發現計數器配置信息保存在注冊表

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Perflib]中

操作步驟:

1. 在 Microsoft Windows 2003 或 Windows XP 桌面上,依次單擊“開始”、“運行”,然後在“打開”中鍵入 regedit.exe,再單擊“確定”。在 Windows 2000 中,使用 regedt32.exe 啟動注冊表編輯器

 

2. 定位到以下注冊表項:

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Perflib]

"Last Counter"=dword:0000566a(22122)   (這個值根據不同的機器各不相同,不是固定值)
"Last Help"=dword:0000566b(22123)        (這個值根據不同的機器各不相同,不是固定值)

(圖三)

在圖三中我們看到,Perflib下存在兩個子項目

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Perflib\004]

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Perflib\009]

經過比較,發現在兩個子文件夾項目下面存在的計數器最大值不同

(圖四)Perflib\004中Counter項目的最大值為22178(這個值根據不同的機器各不相同,不是固定值)

 

(圖五)Perflib\004中Help項目的最大值為22179(這個值根據不同的機器各不相同,不是固定值)

 

(圖六)Perflib\009中Counter項目的最大值為22122(這個值根據不同的機器各不相同,不是固定值)

 

(圖七)Perflib\009中Help項目的最大值為22123(這個值根據不同的機器各不相同,不是固定值)

 

很顯然,如圖所示,在我的機器上[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Perflib]中

"Last Counter"和"Last Help"這兩項的值,和[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Perflib\009]中保存的最大值是相同的,分別為22122和22123(這兩個數值每台電腦各不相同), 而和[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Perflib\004]中保存的最大值不相同,正是由於這個差異,造成了SQL Server 2008 安裝過程中遇到“性能計數器注冊表配置單元一致性”檢查失敗的故障。

 

原因分析:

由於之前安裝過的Visual Studio 2008英文版中所帶的Visual Studio 2005 Express語言版本是英文版,同時又測試安裝了SQL SERVER 2005 Developer Edition簡體中文開發版,之後又卸載了SQL SERVER 2005 Developer Edition簡體中文開發版,打算安裝SQL SERVER 2008 Developer Edition簡體中文開發辦,由於語言的不一致性以及反復多次的安裝卸載,估計是安裝程序在卸載的時候的錯誤,造成了注冊表中鍵值不一致的現象

 

問題解決:

知道的故障的起因,問題就很好解決了,由於我們使用的是簡體中文版操作系統,所以要保證

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Perflib] 中"Last Counter"和"Last Help"這兩項的值與

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Perflib\004]中"Counter"和"Help"兩項保存的最大值相同就可以了

如果我們使用的是英文版操作系統,那就要保證

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Perflib] 中"Last Counter"和"Last Help"這兩項的值與

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Perflib\009]中保存的最大值相同就可以了

(圖八)

修改[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Perflib] 中"Last Counter"的值,使它和[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Perflib\004] 中"Counter"的最大值保持一致,我們這裡是改為22178

 

(圖九)

修 改[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Perflib] 中"Last Help"的值,使它和[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Perflib\004] 中"Help"的最大值保持一致,我們這裡是改為22179

要注意的是,修改數字的時候,必須選擇基數是 “十進制”(默認是十六進制),否則數字將不匹配,SQL SERVER 2008 安裝程序檢查將再次失敗。

(注意:修改注冊表存在一定風險,可能造成您的系統損壞,請先備份注冊表,以備在出現問題後可以恢復。有關如何備份和還原注冊表,請參考Microsoft 知識庫中相應的主題:[322756]如何備份和還原 Windows 注冊表)

 

測試效果:

然後關閉注冊表編輯器,再次開始安裝 SQL SERVER 2008 Developer Edition簡體中文開發版

(圖十)測試通過,不再出現錯誤,可以正常安裝了

 

至此,問題徹底解決,而解決方法,只是簡單得修改了兩個注冊表鍵值。

總結:

由此可見,在遇到問題時,如果不加思考,完全生搬硬套幫助文檔,可能事倍功半,還會引起很多不必要的麻煩,因為幫助文檔只是給我們指明了大致的方 向,編寫幫助文檔的人也不可能知道我們遇到問題的實際環境,因此幫助文檔作為參考是非常有用的,但是遇到問題的時候,我們的實際經驗和動手測試的能力也是 非常重要的,這樣才能少走彎路。

Copyright © Windows教程網 All Rights Reserved