直接刪除安裝目錄、未運行卸載程式、第三方清理工具暴力清理,均屬「非法卸載」。典型後遺症:性能監視器無法載入 SQL Server 計數器、SSMS 連接報錯、新安裝實例失敗。根因:**註冊表 `Perflib` 鍵值損壞**,導致性能計數器庫無法加載 SQL Server 計數器 DLL。本文提供精準修復步驟。
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Perflib ├── 009 -- 英文系統語言 ID ├── 004 -- 簡體中文系統語言 ID (關鍵!中文環境必看此分支) └── CurrentLanguage = 004 (或 009)
每個語言分支下包含:
regedit → 導出 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Perflib\004 為 .reg 文件
-- 在 004 分支下,刪除所有 MSSQL* 子鍵(對應已卸載實例) -- 保留系統原生鍵值(如 'PhysicalDisk', 'Process' 等)
-- 管理員 CMD 執行 cd %windir%\system32 lodctr /R -- 從註冊表備份恢復所有性能計數器(Win7/2008R2+) -- 或舊版本 lodctr /R:perfbackup.ini -- 需提前備份 -- 專門重建 SQL Server 計數器(若有 sqlctr.ini) lodctr "C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Binn\sqlctr.ini" -- 64位實例路徑通常在 MSSQL10.MSSQLSERVER\MSSQL\Binn
perfmon.msc → 添加計數器 → 確認 SQLServer:* 對象完整載入 -- 或命令行驗證 typeperf -q "SQLServer:Buffer Manager" -- 應列出所有計數器實例
性能計數器註冊表損壞是「非法卸載」最隱蔽、破壞力最強的後遺症之一。通過**精準定位語言分支(004/009)→ 清理殘留實例鍵值 → `lodctr /R` 重建庫 → 驗證載入**四步法,可在 10 分鐘內徹底修復。將此流程納入 DBA 應急手冊,並強制執行「規範卸載」流程,從源頭杜絕隱患。