在系統運維實踐中,部分用戶反饋重裝采用預裝SQL Server模板的Windows操作系統后,SQL Server數據庫服務無法正常啟動。經技術核實,此類問題主要集中于用戶執行保留數據重裝操作且更換了不同Windows模板的場景。由于數據庫文件及程序組件原本部署于D盤,而部分重裝所用的Windows模板并未集成對應版本的SQL Server安裝環境,導致重裝后D盤保留的數據庫文件與缺失的程序組件產生版本不匹配或權限沖突,進而引發數據庫服務初始化失敗。
針對此問題,在實施修復操作前,需重點確認以下前提事項:
1. 若D:\Program Files\目錄下存在Microsoft SQL Server文件夾,需將該目錄進行重命名備份;同時檢查D:\Program Files (x86)\目錄下的同名目錄,同樣執行重命名操作,避免與后續修復文件沖突。
2. 針對D盤根目錄下的mssql文件夾,需預先完整復制備份,然后清空該目錄內的所有文件,確保后續步驟中程序組件能夠正確覆蓋或重建相關數據結構。
需通過手動下載指定版本的SQL Server 2008程序組件包,下載鏈接如下:
- http://download.myhostadmin.net/數據庫軟件/sqlserver2008/2008-d/Program%20Files%20(x86).rar
- http://download.myhostadmin.net/數據庫軟件/sqlserver2008/2008-d/Program%20Files.rar
將壓縮包保存至D盤根目錄,使用解壓工具右鍵選擇“解壓到當前文件夾”。解壓完成后,打開cmd命令行窗口,依次執行以下權限重置命令(確保命令路徑與實際目錄一致):
```
cacls "D:\Program Files\Microsoft SQL Server" /e /g mssqluser:f /T
cacls "D:\Program Files (x86)\Microsoft SQL Server" /e /g mssqluser:f /T
cacls D:\mssql /e /g mssqluser:f /T
```
執行完畢后,通過`net start MSSQLSERVER`命令啟動SQL Server服務。需注意,若服務器環境使用westmssql賬號而非默認的mssqluser,需將上述命令中的賬戶名相應替換。
需手動下載SQL Server 2012對應版本的程序組件包,下載鏈接如下:
- http://download.myhostadmin.net/數據庫軟件/sqlserver2012/2012-d/Program%20Files%20(86).rar
- http://download.myhostadmin.net/數據庫軟件/sqlserver2012/2012-d/Program%20Files.rar
- http://download.myhostadmin.net/數據庫軟件/sqlserver2012/2012-d/mssql.rar
將壓縮包保存至D盤根目錄并解壓至當前文件夾,隨后在cmd命令行中執行以下權限重置命令(該環境默認使用westmssql賬號):
```
cacls "D:\Program Files\Microsoft SQL Server" /e /g westmssql:f /T
cacls "D:\Program Files (x86)\Microsoft SQL Server" /e /g westmssql:f /T
cacls D:\mssql /e /g westmssql:f /T
```
完成權限配置后,執行`net start MSSQLSERVER`命令即可啟動數據庫服務。
(來源:西部數碼技術支持中心)