2009年7月5日

安裝 SQL Server 出現「效能監視器計數器需求」、「效能計數器登錄區一致性」或「Performance counter registry hive consistency」 的錯誤

這篇文章原本是在 MSDN 論壇「資料庫與程式開發(SQL Server Development)」區中的「mssql 2005 安裝有問題」討論,特別將其整理在此。

在安裝 SQL Server 2005 時,會出現如下的錯誤提示:


在 SQL Server 2008 則是顯示「效能計數器登錄區一致性」或「Performance counter registry hive consistency」 的錯誤。

按下「訊息」按鈕所顯示的效能監視器計數器需求(錯誤) 之詳細說明

請依照下列步驟進行設定:

  1. 開啟「登錄編輯器」
    依序按一下「開始」「執行」,在「開啟」中輸入 regedit,然後按一下「確定」按鈕。
  2. 確認機碼值
    「登錄編輯器」,找到下列機碼:
    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Perflib
    您會發現如下這兩個機碼名稱與機碼值(您的機碼值可能跟我的不一樣,那沒有關係):
    Last Counter=00001dd2 (7634)
    Last Help=00001dd3 (7635)

    如此圖

  3. 找出機碼最大值
    展開上圖中位於 Perflib 之下的「009」該節點(安裝英文版的 SQL Serer,是展開 009,若安裝的是正體中文版,請展開 004 ),在右邊窗格中的 CounterHelp 機碼上,用滑鼠連按兩次來察看其最大值是多少,將捲軸拉到最下面(如果作業系統為 Vista 或更新版本,則最大的機碼值未必會出現在最後,請見文末),即可查得。以下圖為例,Help 機碼的最大值為 7635

  4. 確認機碼最大值是否相符
    回到步驟 2 中,確認 Last Counter 值(以本範例而言,其值為 7634)與  Last Help 值 (以本範例而言,其值為 7635) 必須符合上個步驟 Perflib\009(安裝英文版的 SQL Serer,是檢查 009,若安裝的是正體中文版,請檢查 Perflib\004 中的 CounterHelp 機碼的最大值(以本範例為而,其值分別為 76347635)。
    若不符何時,請修改步驟 2 中的 Last Counter 值和 Last Help 值,修改方式如下:
    1. 以滑鼠右鍵按一下右邊窗格中的 Last Counter ,連按兩下滑鼠左鍵,接著按一下「底數」下面的 ○ 十進位(D) 選項鈕, 在「數值資料」文字方塊中,鍵入設定值 7634 (此數值請依照您實際的環境鍵入),然後按一下「確定」按鈕。
    2. 以滑鼠右鍵按一下右邊窗格中的 Last Help ,連按兩下滑鼠左鍵,接著按一下「底數」下面的 ○ 十進位(D) 選項鈕在「數值資料」文字方塊中,鍵入設定值 7635(此數值請依照您實際的環境鍵入),然後按一下「確定」按鈕。
    3. 關閉「登錄編輯器」
  5. 重新執行 SQL Server 安裝程式。

PS:

  1. 像此類關於 SQL Server 安裝的問題應該是要到「TechNet 論壇」「資料庫管理 (SQL Server Management)」提問才對,因為程式開發的問題是屬於 MSDN 論壇,而 Server 的管理就屬於 TechNet 論壇
  2. 如果所使用的作業系統為 Vista 或更新版本(例如:Windows Server 2008、Windows 7),則請注意下列兩點:
    1. HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Perflib 之下,看不到 004,因此如果安裝的是正體中文版 SQL Server,請改檢查 0404

    2. 最大的機碼值未必會出現在最後。


      您當然可以使用人工目視的方式,逐行比對,找出最大值為何。我的作法是:
      1. 「編輯多字串」視窗中,按下滑鼠右鍵,選擇「全選(A)」指令,接著再按下滑鼠右鍵,選擇「複製(C)」指令。

      2. 開啟一個新的 Excel 工作表。
      3. 將先前複製的內容貼上。
      4. 使用「從最小到最大排序」的排序方法,即可找出最大值。


沒有留言:

張貼留言