升级前必须对所有数据库进行完整备份(包括系统数据库如master、msdb),可使用BACKUP DATABASE命令或SQL Server Management Studio(SSMS)导出数据,防止升级过程中数据丢失。
wget、openssl11-devel、libaio等),避免安装过程中出现依赖冲突。确保现有应用程序支持目标SQL Server版本(如存储过程、视图、函数是否兼容新版本语法),必要时调整代码。
sudo yum update -y # 更新CentOS系统至最新状态
sudo yum clean all # 清理YUM缓存
sudo yum makecache # 重建YUM缓存
根据目标SQL Server版本选择对应源(以SQL Server 2022为例,适用于RHEL 8的源兼容CentOS 8/9 Stream):
sudo bash -c 'cat > /etc/yum.repos.d/mssql-release.repo' <<EOF
[mssql-release]
name=Microsoft SQL Server
baseurl=https://packages.microsoft.com/yum/repos/mssql-server-2022-rhel8
enabled=1
gpgcheck=1
gpgkey=https://packages.microsoft.com/keys/microsoft.asc
EOF
sudo yum update -y mssql-server # 升级现有SQL Server至最新版本
若需全新安装,可跳过升级命令,直接执行sudo yum install -y mssql-server。
升级完成后,需重新运行配置工具设置SA密码及版本:
sudo /opt/mssql/bin/mssql-conf setup
按照提示输入强密码(符合复杂度要求),并确认SQL Server版本(默认为企业版)。
sudo systemctl status mssql-server
确保服务状态为active (running),若未运行,使用sudo systemctl start mssql-server启动。
使用sqlcmd命令行工具连接(默认端口1433,SA账户):
sqlcmd -S localhost -U sa -P YourPassword
连接成功后,执行以下命令查看版本信息:
SELECT @@VERSION;
GO
输出应显示目标SQL Server版本(如Microsoft SQL Server 2022 (RTM) - 16.0.1000.6)。
对升级后的数据库执行完整性检查,确保数据未损坏:
USE YourDatabaseName;
DBCC CHECKDB;
GO
若输出无错误,则数据库完整性正常。
若升级后出现存储过程、视图无法执行的情况,可降低数据库兼容级别(如设置为SQL Server 2019的150):
ALTER DATABASE [YourDatabaseName] SET COMPATIBILITY_LEVEL = 150;
GO
查看SQL Server错误日志(位于/var/opt/mssql/log/errorlog)或YUM安装日志(/var/log/yum.log),定位错误根源(如依赖缺失、磁盘空间不足)。
sudo firewall-cmd --zone=public --add-port=1433/tcp --permanent
sudo firewall-cmd --reload
sudo setenforce 0),若解决则配置SELinux策略允许SQL Server远程连接。