一、更新前准备工作
BACKUP DATABASE [YourDatabase] TO DISK = '/path/to/backup.bak'),避免升级失败导致数据丢失。sudo yum update -y),安装必要依赖包(如openssl11-devel、libaio、libcurl等),确保系统满足SQL Server的安装要求。二、添加/更新SQL Server YUM源
根据目标版本选择对应的Microsoft YUM源文件(如SQL Server 2022对应RHEL 8源),使用curl命令添加至/etc/yum.repos.d/目录。例如,添加SQL Server 2022源:
sudo bash -c 'cat > /etc/yum.repos.d/mssql-release.repo << EOF
[mssql-release]
name=Microsoft SQL Server
baseurl=https://packages.microsoft.com/yum/rhel/8/prod/
enabled=1
gpgcheck=1
gpgkey=https://packages.microsoft.com/keys/microsoft.asc
EOF'
添加后执行sudo yum clean all && sudo yum makecache刷新软件包缓存。
三、执行SQL Server更新
yum update命令升级现有SQL Server实例至最新版本(若未安装,此命令会自动安装):sudo yum update -y mssql-server
mssql-conf setup工具重新配置实例(如确认SA密码、选择版本类型),确保配置与新版本兼容:sudo /opt/mssql/bin/mssql-conf setup
按照提示完成配置(无需修改密码时可跳过密码设置步骤)。
四、升级数据库兼容级别(可选但推荐) 若应用程序依赖特定数据库兼容级别,需手动调整。例如,将数据库升级至SQL Server 2022的兼容级别(150):
USE master;
GO
ALTER DATABASE [YourDatabaseName] SET COMPATIBILITY_LEVEL = 150;
GO
升级后执行DBCC CHECKDB([YourDatabaseName])验证数据库完整性,确保数据未损坏。
五、验证升级结果
sudo systemctl status mssql-server
应显示“active (running)”状态。
2. 连接实例并检查版本:使用sqlcmd工具连接SQL Server,执行SELECT @@VERSION;查看版本信息,确认升级成功:
sqlcmd -S localhost -U sa -P YourPassword
1> SELECT @@VERSION;
2> GO
输出应包含目标版本号(如“Microsoft SQL Server 2022 (RTM) - 16.0.1000.6”)。
3. 测试应用程序功能:运行应用程序的关键业务流程,验证与SQL Server新版本的兼容性(如存储过程、视图、触发器是否正常执行)。
六、常见问题处理
ALTER DATABASE调整兼容级别回退至旧版本,或修改代码适配新版本语法。/var/opt/mssql/log/目录下的安装日志(如mssql-server.log),定位错误根源(如依赖缺失、磁盘空间不足),并根据日志提示修复。