返回首頁
當前位置: 主頁 > 網絡編程 > .Net實例教程 >

SQL Server 2008(或2005) 安裝過程中遇到“性能計數器注冊表配置

時間:2013-04-25 14:15來源:知行網www.wzliqi.com 編輯:麥田守望者

在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簡體中文開發版

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

 

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

總結:

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

------分隔線----------------------------
標簽(Tag):SQLServer SQLServer數據庫 數據庫 Sqlserver2008
------分隔線----------------------------
推薦內容
猜你感興趣
久久99久久99精品免视看