如何在SQL Server 2005中為安裝程序增加計(jì)數(shù)器注冊表項(xiàng)值
2024-08-31 00:53:07
供稿:網(wǎng)友
如何在SQL Server 2005中為安裝程序增加計(jì)數(shù)器注冊表項(xiàng)值
SQL SERVER 安裝出現(xiàn) “性能計(jì)數(shù)器注冊表配置單元一致性”檢查失敗 的問題
在Windows Server 2003 、Windows xp或者Windows 2000中安裝 SQL SERVER 2008 開發(fā)版和企業(yè)版時(shí),會(huì)遇到“性能計(jì)數(shù)器注冊表配置單元一致性”檢查失敗 的問題(Windows Server 2008 由于暫時(shí)沒有環(huán)境,尚未測試)
(圖一)
安裝提示錯(cuò)誤信息為:
(圖二)
解決方法:
先根據(jù)幫助提示,打開 http://support.microsoft.com/kb/300956, 幫助的文檔是讓你使用安裝光盤重置性能計(jì)數(shù)器文件,操作步驟比較復(fù)雜,可是我并沒有安裝什么特殊的軟件,而且確定也沒有病毒感染,為什么性能計(jì)數(shù)器會(huì)損壞 呢,因此決定不到萬不得已暫時(shí)不去重置性能計(jì)數(shù)器,以免擴(kuò)大問題的影響面。(Microsoft的Help文檔經(jīng)常是答非所問....)
果然,經(jīng)翻閱文檔,發(fā)現(xiàn)計(jì)數(shù)器配置信息保存在注冊表
[HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Windows NT/CurrentVersion/Perflib]中
操作步驟:
1. 在 Microsoft Windows 2003 或 Windows XP 桌面上,依次單擊“開始”、“運(yùn)行”,然后在“打開”中鍵入 regedit.exe,再單擊“確定”。在 Windows 2000 中,使用 regedt32.exe 啟動(dòng)注冊表編輯器
2. 定位到以下注冊表項(xiàng):
[HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Windows NT/CurrentVersion/Perflib]
"Last Counter"=dWord:0000566a(22122) (這個(gè)值根據(jù)不同的機(jī)器各不相同,不是固定值)
"Last Help"=dword:0000566b(22123) (這個(gè)值根據(jù)不同的機(jī)器各不相同,不是固定值)
(圖三)
在圖三中我們看到,Perflib下存在兩個(gè)子項(xiàng)目
[HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Windows NT/CurrentVersion/Perflib/004]
[HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Windows NT/CurrentVersion/Perflib/009]
經(jīng)過比較,發(fā)現(xiàn)在兩個(gè)子文件夾項(xiàng)目下面存在的計(jì)數(shù)器最大值不同
(圖四)Perflib/004中Counter項(xiàng)目的最大值為22178(這個(gè)值根據(jù)不同的機(jī)器各不相同,不是固定值)
(圖五)Perflib/004中Help項(xiàng)目的最大值為22179(這個(gè)值根據(jù)不同的機(jī)器各不相同,不是固定值)
(圖六)Perflib/009中Counter項(xiàng)目的最大值為22122(這個(gè)值根據(jù)不同的機(jī)器各不相同,不是固定值)
(圖七)Perflib/009中Help項(xiàng)目的最大值為22123(這個(gè)值根據(jù)不同的機(jī)器各不相同,不是固定值)
很顯然,如圖所示,在我的機(jī)器上[HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Windows NT/CurrentVersion/Perflib]中
"Last Counter"和"Last Help"這兩項(xiàng)的值,和[HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Windows NT/CurrentVersion/Perflib/009]中保存的最大值是相同的,分別為22122和22123(這兩個(gè)數(shù)值每臺(tái)電腦各不相同), 而和[HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Windows NT/CurrentVersion/Perflib/004]中保存的最大值不相同,正是由于這個(gè)差異,造成了SQL Server 2008 安裝過程中遇到“性能計(jì)數(shù)器注冊表配置單元一致性”檢查失敗的故障。
原因分析:
由于之前安裝過的Visual Studio 2008英文版中所帶的Visual Studio 2005 ExPRess語言版本是英文版,同時(shí)又測試安裝了SQL SERVER 2005 Developer Edition簡體中文開發(fā)版,之后又卸載了SQL SERVER 2005 Developer Edition簡體中文開發(fā)版,打算安裝SQL SERVER 2008 Developer Edition簡體中文開發(fā)辦,由于語言的不一致性以及反復(fù)多次的安裝卸載,估計(jì)是安裝程序在卸載的時(shí)候的錯(cuò)誤,造成了注冊表中鍵值不一致的現(xiàn)象
問題解決:
知道的故障的起因,問題就很好解決了,
由于我們使用的是簡體中文版操作系統(tǒng),所以要保證[HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Windows NT/CurrentVersion/Perflib] 中"Last Counter"和"Last Help"這兩項(xiàng)的值與
[HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Windows NT/CurrentVersion/Perflib/004]中"Counter"和"Help"兩項(xiàng)保存的最大值相同就可以了
如果我們使用的是英文版操作系統(tǒng),那就要保證[HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Windows NT/CurrentVersion/Perflib] 中"Last Counter"和"Last Help"這兩項(xiàng)的值與
[HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Windows NT/CurrentVersion/Perflib/009]中保存的最大值相同就可以了
<注意自帶的幫助文檔寫成交差對應(yīng)的,當(dāng)然還是不行>
(圖八)
修改[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
要注意的是,修改數(shù)字的時(shí)候,必須選擇基數(shù)是 “十進(jìn)制”(默認(rèn)是十六進(jìn)制),否則數(shù)字將不匹配,SQL SERVER 2008 安裝程序檢查將再次失敗。
(注意:修改注冊表存在一定風(fēng)險(xiǎn),可能造成您的系統(tǒng)損壞,請先備份注冊表,以備在出現(xiàn)問題后可以恢復(fù)。有關(guān)如何備份和還原注冊表,請參考Microsoft 知識(shí)庫中相應(yīng)的主題:[322756]如何備份和還原 Windows 注冊表)
測試效果:
然后關(guān)閉注冊表編輯器,再次開始安裝 SQL SERVER 2008 Developer Edition簡體中文開發(fā)版
(圖十)測試通過,不再出現(xiàn)錯(cuò)誤,可以正常安裝了
至此,問題徹底解決,而解決方法,只是簡單得修改了兩個(gè)注冊表鍵值。
總結(jié):
由此可見,在遇到問題時(shí),如果不加思考,完全生搬硬套幫助文檔,可能事倍功半,還會(huì)引起很多不必要的麻煩,因?yàn)閹椭臋n只是給我們指明了大致的方 向,編寫幫助文檔的人也不可能知道我們遇到問題的實(shí)際環(huán)境,因此幫助文檔作為參考是非常有用的,但是遇到問題的時(shí)候,我們的實(shí)際經(jīng)驗(yàn)和動(dòng)手測試的能力也是 非常重要的,這樣才能少走彎路。