2010年6月30日 星期三

安裝 SQL Server 2008時,在檢查“安裝程式支援規則”時出現 『效能計數器登錄區一致性』失敗

在 HP DL-380 G6 的設備上安裝了 Windows Server 2008 R2 後,再安裝 SQL Server 2008 R2 Stardand ,在檢查“安裝程式支援規則”時出現 『效能計數器登錄區一致性』失敗,而這個異常則會造成SQL Server 無法繼續往下安裝


上述的英文說明為
Rule "Performance counter registry hive consistency check" failed.

而且訊息中引導你去看Microsoft 的知識庫

KB300956:如何手動重建效能計數器程式庫值
http://support.microsoft.com/kb/300956
http://support.microsoft.com/kb/300956/en-us

找了網路上有很多人都遇到了這個問題,而大部份都是以手動修改登錄機碼方式來處理。
但它真的不是好方法

最後終於找到問題點了

原來是使用HP SmartStart CD安裝Windows Server 2008 R2所造成的,使用SmartStart CD來安裝時會將“非 Unicode 程式目前使用的語言”設成“英文(美國)”


而在登錄機碼值中的

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Perflib\ 中的0404 會是空的


僅有 009 會有資料


此時只要將“控制台”-->“地區以及語言”-->“系統管理”-->“非 Unicode 程式目前使用的語言”設成“中文(繁體,台灣)”,重新開機後上述的登錄機碼值(0404)會被填入資料


此時即可正常的安裝 SQL Server 2008 R2

這個異常應是使用HP SmartStart CD安裝時,SmartStart的能選的語系並沒有繁體中文,所以當使用中文的OS安裝光碟安裝後,可能因語系轉換的部份機制出了問題,而造成“非 Unicode 程式目前使用的語言”被設成“英文(美國)”

問題終於被解決,而且不用手動修改

另外,使用的 HP SmartStart CD 的版本為 x64 8.30