CentOS升級SQL Server版本的詳細步驟
備份所有數據庫
使用mysqldump(MySQL)或sqlcmd(SQL Server)工具對所有業務數據庫進行完整備份,包括系統數據庫(如master、model、msdb)。例如:
sqlcmd -S localhost -U sa -P YourPassword -Q "BACKUP DATABASE [YourDatabaseName] TO DISK='/var/opt/mssql/backup/YourDatabaseName.bak' WITH INIT"
備份是升級的核心安全措施,可防止數據丟失或升級失敗導致的不可逆損壞。
檢查系統兼容性
sudo yum update -y
驗證應用程序兼容性
確?,F有應用程序支持目標SQL Server版本,重點檢查:
sp_dboption)。根據目標SQL Server版本,下載并添加對應的Microsoft YUM源文件:
sudo curl -o /etc/yum.repos.d/mssql-server-2022.repo https://packages.microsoft.com/config/rhel/8/mssql-server-2022.repo
sudo curl -o /etc/yum.repos.d/mssql-server-2019.repo https://packages.microsoft.com/config/rhel/7/mssql-server-2019.repo
添加源后,執行sudo yum repolist確認源已成功注冊。
執行升級命令
使用yum的upgrade命令升級現有SQL Server實例,yum會自動處理依賴關系并替換舊版本文件:
sudo yum upgrade -y mssql-server
升級過程中,系統會提示確認操作,輸入y繼續。升級完成后,SQL Server服務會自動重啟。
驗證升級結果
sudo systemctl status mssql-server
若顯示active (running),說明服務已正常啟動。sqlcmd連接到實例,執行以下命令:sqlcmd -S localhost -U sa -P YourPassword -Q "SELECT @@VERSION"
輸出應顯示目標版本信息(如Microsoft SQL Server 2022 (RTM) - 16.0.1000.6)。升級SQL Server實例后,需將用戶數據庫的兼容級別調整為目標版本的對應級別,以確保數據庫功能正常:
160(對應16.0版本)。150(對應15.0版本)。執行以下命令修改兼容級別(以YourDatabaseName為例):
sqlcmd -S localhost -U sa -P YourPassword -Q "ALTER DATABASE [YourDatabaseName] SET COMPATIBILITY_LEVEL = 160;"
注意:升級后建議先測試數據庫功能(如存儲過程、查詢性能),再調整生產環境的兼容級別。
使用DBCC CHECKDB命令檢查數據庫的物理和邏輯完整性,確保升級過程中未損壞數據:
sqlcmd -S localhost -U sa -P YourPassword -Q "DBCC CHECKDB ([YourDatabaseName]) WITH NO_INFOMSGS, ALL_ERRORMSGS;"
若輸出中無錯誤信息(CHECKDB found 0 allocation errors and 0 consistency errors),說明數據庫完整性良好。
依賴包缺失
若升級過程中提示缺少依賴(如openssl、libcurl),可通過yum安裝對應包:
sudo yum install -y openssl libcurl
安裝完成后重新執行升級命令。
升級失敗回滾
若升級失敗,可通過yum history查看操作記錄并回滾:
sudo yum history list mssql-server
sudo yum history undo <transaction_id>
回滾會將SQL Server恢復至升級前的版本。
兼容性問題
若升級后應用程序出現功能異常(如存儲過程報錯),可暫時降低數據庫兼容級別至舊版本(如150),待應用程序適配后再提升。
通過以上步驟,可在CentOS系統上安全、順利地升級SQL Server版本。升級前務必做好備份和兼容性檢查,避免數據丟失或業務中斷。