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