備份重要數據:更新前必須通過sqlcmd或SSMS備份所有關鍵數據庫,防止更新失敗導致數據丟失。示例如下:
sqlcmd -S localhost -U sa -P your_password -Q "BACKUP DATABASE [YourDatabaseName] TO DISK = '/var/opt/mssql/backup/YourDatabaseName.bak'"
檢查當前版本:使用mssql-conf --version確認SQL Server當前版本,為后續更新做準備。
更新系統軟件包:運行sudo apt update && sudo apt upgrade更新Debian系統所有軟件包至最新版本,確保兼容性。
安裝必要依賴:安裝curl、gnupg、apt-transport-https等工具,用于添加Microsoft軟件源及驗證包完整性。
導入GPG密鑰:通過curl https://packages.microsoft.com/keys/microsoft.asc | sudo gpg --dearmor -o /usr/share/keyrings/microsoft-archive-keyring.gpg導入密鑰,確保軟件包來源可信。
配置軟件源:根據Debian版本(如12)添加對應SQL Server源,示例如下:
echo "deb [signed-by=/usr/share/keyrings/microsoft-archive-keyring.gpg] https://packages.microsoft.com/debian/12/prod/ stable main" | sudo tee /etc/apt/sources.list.d/mssql-server.list
檢查可用更新:運行sudo apt update刷新包列表,sudo apt list --upgradable查看可更新的SQL Server包。
安裝更新:使用sudo apt upgrade mssql-server升級SQL Server主包,或sudo apt install --only-upgrade mssql-server僅升級SQL Server。
重啟服務:更新完成后重啟SQL Server服務使變更生效:sudo systemctl restart mssql-server。
驗證更新:再次運行mssql-conf --version確認版本已更新至目標版本。
制定備份計劃:采用完全備份+差異備份+事務日志備份的組合策略,完全備份每周1次,差異備份每日1次,事務日志備份每小時1次。
自動化備份:使用cron定時任務或SQL Server代理創建維護計劃,自動執行備份并將備份文件存儲至外部存儲(如NAS、云存儲)。
備份驗證:定期測試備份文件的恢復流程,確保備份有效性。
日志備份與清理:定期備份事務日志(通過BACKUP LOG命令),防止日志文件過度增長;使用DBCC SHRINKFILE命令截斷日志,釋放磁盤空間。
調整恢復模式:根據業務需求設置恢復模式(如生產環境用“完整恢復模式”,測試環境用“簡單恢復模式”),平衡數據安全性與性能。
資源調整:根據服務器配置調整SQL Server內存參數(如max server memory),避免占用過多系統內存;優化CPU核心數分配(如max degree of parallelism)。
查詢優化:使用EXPLAIN分析慢查詢,添加適當索引(如聚集索引、非聚集索引);優化查詢語句(如避免SELECT *、減少子查詢嵌套)。
統計信息更新:定期運行UPDATE STATISTICS [TableName]更新表統計信息,幫助查詢優化器生成高效執行計劃。
應用安全補丁:及時安裝Microsoft發布的SQL Server安全補丁,修復已知漏洞;訂閱Microsoft安全通知服務,第一時間獲取補丁信息。
權限管理:遵循“最小權限原則”分配用戶權限,定期審核用戶角色(如sysadmin、db_owner);禁用默認賬戶(如sa),使用強密碼并定期更換。
防火墻配置:開放SQL Server默認端口(1433),并通過ufw或firewalld限制訪問IP,僅允許可信IP連接。
性能監控:使用SQL Server自帶的性能監視器(Performance Monitor)、sys.dm_exec_query_stats視圖或第三方工具(如Prometheus+Granafa)監控關鍵指標(CPU使用率、內存占用、磁盤I/O、查詢響應時間)。
日志分析:定期檢查SQL Server錯誤日志(/var/opt/mssql/log/errorlog)和系統日志,識別異常(如連接超時、死鎖、權限問題)。
故障排查:遇到服務故障時,使用systemctl status mssql-server查看服務狀態,通過journalctl -u mssql-server查看詳細日志;必要時重啟服務或回滾更新。