首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> SQL Server 資料庫 >> 關於SqlServer

SQL Server 2005 性能計數器註冊表錯誤修復:Perflib 009 vs 0804 語言 ID 陷阱與正確修正步驟

     編輯:關於SqlServer

錯誤現象

安裝 SQL Server 2005 時提示「性能計數器註冊表設置不一致」,導致安裝阻塞。

根因:語言 ID 不匹配

  • 官方文檔引導修改 HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Perflib\009 (英文系統)。
  • 中文簡體系統語言 ID 為 0804 (十六進制),對應鍵路徑 ...\\Perflib\\0804。
  • 修改錯誤鍵值 (009) 無效,真實計數器定義在 0804 下。

正確修復步驟

  1. 打開「控制面板」→「管理工具」→「性能」→「性能日誌和警報」→「性能計數器」。
  2. 右鍵「系統總覽」→「屬性」→「添加計數器」驗證計數器可正常加載。
  3. 註冊表編輯器定位:HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Perflib\0804。
  4. 記錄 Counter 最大值 (如 5276)、Help 最大值 (如 5277)。
  5. 修改父鍵 ...\\Perflib 下:Last Counter = 5276 (十進制)、Last Help = 5277 (十進制)。
  6. 不要修改 0804 子鍵下的值,僅同步父鍵最大值。
  7. 重啟性能監控器驗證,再次運行 SQL 安裝程序。

通用腳本化修復 (PowerShell)


$langId = (Get-CimInstance Win32_OperatingSystem).OSLanguage  # 返回 2052 (十進制) = 0804 (十六進制)
$perflib = "HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Perflib"
$maxCounter = (Get-ItemProperty "$perflib\$("{0:X4}" -f $langId)").Counter | Measure-Object -Maximum | Select -Expand Maximum
$maxHelp    = (Get-ItemProperty "$perflib\$("{0:X4}" -f $langId)").Help    | Measure-Object -Maximum | Select -Expand Maximum
Set-ItemProperty $perflib -Name "Last Counter" -Value $maxCounter
Set-ItemProperty $perflib -Name "Last Help"    -Value $maxHelp
Write-Host "Fixed: Last Counter=$maxCounter, Last Help=$maxHelp for LangID 0x$("{0:X4}" -f $langId)"

預防與最佳實踐

  • 安裝 SQL Server 前運行上述腳本,納入標準化環境準備清單。
  • 使用英文版 Windows Server 部署 SQL Server,規避語言 ID 陷阱 (009 通用)。
  • 定期巡檢 Last Counter/Help 與 Perflib\ 最大值一致性。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved