如何在Ubuntu上更新SQL Server后轻松提升数据库性能与安全性?

更新于
2026-08-10 06:33:31
3阅读来源:SEO资源
  • 内容介绍
  • 文章标签
  • 相关推荐

至于常见痛点。更新后可能遇到的困扰

  • 性能骤降:升级后查询变慢,CPU/IO 使用率飙升。
  • 安全隐患:旧版漏洞未修补,导致数据泄露风险。
  • 服务不可用:SQL Server 未能正常启动或端口被防火墙阻断。
  • 兼容性问题:应用程序连接失败,出现库版本不匹配错误。

一、升级前的准备工作

1. 备份关键数据

在任何程序层面的更新之前。务必先对数据库进行完整备份,以防止意外数据丢失。

sudo /opt/mssql-tools/bin/sqlcmd -S localhost -U SA -P '' -Q "BACKUP DATABASE TO DISK = '/var/opt/mssql/backup/YourDB.bak' WITH INIT"

2. 检查当前版本与程序兼容性

确认现有 SQL Server 版本支持目标 Ubuntu 发行版。

如何在Ubuntu上更新SQL Server后轻松提升数据库性能与安全性?
sqlcmd -S localhost -U SA -P '' -Q "SELECT @@VERSION"

3. 更新程序软件包列表

sudo apt update && sudo apt upgrade -y

二、添加或更新 Microsoft 官方存储库

1. 导入 GPG 密钥

wget -qO- https://packages.microsoft.com/keys/microsoft.asc | sudo apt-key add -

2. 注册适用于当前 Ubuntu 版本的存储库

wget -qO- https://packages.microsoft.com/config/ubuntu/$/mssql-server.list | sudo tee /etc/apt/sources.list.d/mssql-server.list

3. 同步软件源

sudo apt update

三、执行 SQL Server 更新或全新安装

1. 安装SQL Server 包

sudo apt install -y mssql-server
# 若已存在旧版本。会自动执行升级流程

2. 运行配置向导并设置 SA 密码

sudo /opt/mssql/bin/mssql-conf setup
# 按提示选择版本、输入强密码、设置默认语言等

3. 重新启动使更改生效

sudo systemctl restart mssql-server
sudo systemctl status mssql-server --no-pager # 确认状态为 active

四、验证升级成功与基本连通性

  • 检查服务状态:
  • # 已在上一步完成,可
    确认
    sudo systemctl status mssql-server --no-pager
    
  • 查询数据库版本:
  • ' -Q "SELECT @@VERSION"
  • 测试远程连接:
  • 确保防火墙已开放 1433 端口。

    # 开放端口并启用防火墙
    sudo ufw allow 1433/tcp
    sudo ufw enable
    

五、提高性能的关键措施

a) 索引调整

  • 为经常出现在 WHERE、JOIN、ORDER BY 子句中的列创建合适的非聚集索引。
  • 使用覆盖索引避免回表,提高查询吞吐量。
  • ' -Q "
    DECLARE @sql NVARCHAR = N'';SELECT @sql += N'ALTER INDEX ALL ON . REBUILD;',FROM sys.tables t;按理说,EXEC sp_executesql @sql;"

    b) 更新统计信息

    统计信息是查询调整器的关键依据,及时刷新可避免错误的执行计划。其实,

    ' -Q "
    EXEC sp_updatestats;"
    • SMA 设置最大内存,防止占满程序资源:
    /opt/mssql/bin/mssql-conf set memory.memorylimitmb 8192 # 示例:限制为 8GB
    systemctl restart mssql-server
    

    D) 磁盘 I/O 调整

    • 推荐使用 XFS 或 EXT4 文件程序; 避免 BTRFS,怎么说呢,
    • If possible。将日志文件 与数据文件 分别放置在不同的 SSD 分区,以降低写入竞争。按理说,

    示例命令:

    # 更改默认数据和日志目录
    sudo /opt/mssql/bin/mssql-conf set filelocation.defaultdatadir /mnt/data/sql-data
    sudo /opt/mssql/bin/mssql-conf set filelocation.defaultlogdir /mnt/log/sql-log
    systemctl restart mssql-server
    

    如何在Ubuntu上更新SQL Server后轻松提升数据库性能与安全性?

    六、安全加固要点

    • TLS 加密:LATEST 安装 libssl & libldap 并启用加密通信。
      # 安装依赖库
      sudo apt install -y libssl1.1 libldap-2.4-2
      # 启用 TLS
      /opt/mssql/bin/mssql-conf set network.tlscertpath /etc/ssl/certs/sqlserver.crt
      /opt/mssql/bin/mssql-conf set network.tlskeypath /etc/ssl/private/sqlserver.key
      systemctl restart mssql-server
      
    • AUDIT & LOGGING:Keeps audit logs for login attempts and schema changes.
      /opt/mssql/bin/mssql-conf set audit.enabled true
      systemctl restart mssq​​l-server
      ​
      ​​​​
      ​​​
      
      最小化特权账户:​
      ​  * 删除不再使用的登录名;​  * 为每个业务角色分配最小权限。说起来,bash
      sqlcmd –S localhost –U SA –P 'StrongPwd!' –Q "DROP LOGIN "
      ​
      
    • 防火墙规则:只允许可信 IP 访问 14330 bash sudo ufw allow from 203.0.113.0/24 to any port 14330 proto tcp ​
    • 定期检查官方安全公告,并在补丁发布后立即执行: bash sudo apt update && sudo apt upgrade –y ​​​ ​​​ ​​​ ​​​ ​​​ ​​​ ​​​ ### 七、常见问题及快捷方式 | 症状 | 可能原因 | 尽快处理办法 | |------|----------|--------------| | **服务无法启动** | 配置文件语法错误或硬盘空间不足 | `journalctl -u mssql-server` 看日志;清理磁盘并重新运行 `mssql-conf setup` | | **连接超时** | 防火墙未放行 14333 或监听地址被绑定到本地回环 | `sudo ufw allow 14333/tcp`;检查 `/etc/hosts` 中是否误配置 | | **查询慢** | 缺少必要索引或统计信息过期 | 按上文 “索引调整” 与 “更新统计信息” 步骤操作 | | **TLS 握手失败** | 缺少 libssl 或证书方法错误 | 确认 `libssl1.1` 已安装;不过,证书方法无误并重新启动 | #### 常用排错命令合集 bash # 查看服务状态与最最近志片段 systemctl status mssql-server --no-pager # 实时查看程序资源使用情况 htop # 检查端口监听情况 ss -tlnp | grep 14330 # 查看 SQL Server 错误日志 cat /var/opt/mssql/log/errorlog | tail -n 50

      八、日常维护建议

      • 定期备份: 每周全备。每日增量,使用 Azure Blob 或本地 NAS 作离线存储。
      • Patching 策略: 每月第一周执行 `apt update && apt upgrade`,确保所有安全补丁及时落地。
      • 监控指标这方面。
    • 部署 Promeus + Grafana 插件,实时监控 CPU、内存、磁盘 I/O 与等待时间。按理说,官方提供 Exporter 可直接采集指标。 清理临时文件和旧日志:
       sudo find /var/opt/mss ql/log/*‑error.log‑* –mtime +30 –delete
      // 删除30天前的错误日志
      

    - 完成全部步骤后你的 Ubuntu 上 SQL Server 将以更高的性能、更稳固的安全姿态运行。记得把这篇文章加入收藏,以便随时回顾!-

标签:Ubuntu

至于常见痛点。更新后可能遇到的困扰

  • 性能骤降:升级后查询变慢,CPU/IO 使用率飙升。
  • 安全隐患:旧版漏洞未修补,导致数据泄露风险。
  • 服务不可用:SQL Server 未能正常启动或端口被防火墙阻断。
  • 兼容性问题:应用程序连接失败,出现库版本不匹配错误。

一、升级前的准备工作

1. 备份关键数据

在任何程序层面的更新之前。务必先对数据库进行完整备份,以防止意外数据丢失。

sudo /opt/mssql-tools/bin/sqlcmd -S localhost -U SA -P '' -Q "BACKUP DATABASE TO DISK = '/var/opt/mssql/backup/YourDB.bak' WITH INIT"

2. 检查当前版本与程序兼容性

确认现有 SQL Server 版本支持目标 Ubuntu 发行版。

如何在Ubuntu上更新SQL Server后轻松提升数据库性能与安全性?
sqlcmd -S localhost -U SA -P '' -Q "SELECT @@VERSION"

3. 更新程序软件包列表

sudo apt update && sudo apt upgrade -y

二、添加或更新 Microsoft 官方存储库

1. 导入 GPG 密钥

wget -qO- https://packages.microsoft.com/keys/microsoft.asc | sudo apt-key add -

2. 注册适用于当前 Ubuntu 版本的存储库

wget -qO- https://packages.microsoft.com/config/ubuntu/$/mssql-server.list | sudo tee /etc/apt/sources.list.d/mssql-server.list

3. 同步软件源

sudo apt update

三、执行 SQL Server 更新或全新安装

1. 安装SQL Server 包

sudo apt install -y mssql-server
# 若已存在旧版本。会自动执行升级流程

2. 运行配置向导并设置 SA 密码

sudo /opt/mssql/bin/mssql-conf setup
# 按提示选择版本、输入强密码、设置默认语言等

3. 重新启动使更改生效

sudo systemctl restart mssql-server
sudo systemctl status mssql-server --no-pager # 确认状态为 active

四、验证升级成功与基本连通性

  • 检查服务状态:
  • # 已在上一步完成,可
    确认
    sudo systemctl status mssql-server --no-pager
    
  • 查询数据库版本:
  • ' -Q "SELECT @@VERSION"
  • 测试远程连接:
  • 确保防火墙已开放 1433 端口。

    # 开放端口并启用防火墙
    sudo ufw allow 1433/tcp
    sudo ufw enable
    

五、提高性能的关键措施

a) 索引调整

  • 为经常出现在 WHERE、JOIN、ORDER BY 子句中的列创建合适的非聚集索引。
  • 使用覆盖索引避免回表,提高查询吞吐量。
  • ' -Q "
    DECLARE @sql NVARCHAR = N'';SELECT @sql += N'ALTER INDEX ALL ON . REBUILD;',FROM sys.tables t;按理说,EXEC sp_executesql @sql;"

    b) 更新统计信息

    统计信息是查询调整器的关键依据,及时刷新可避免错误的执行计划。其实,

    ' -Q "
    EXEC sp_updatestats;"
    • SMA 设置最大内存,防止占满程序资源:
    /opt/mssql/bin/mssql-conf set memory.memorylimitmb 8192 # 示例:限制为 8GB
    systemctl restart mssql-server
    

    D) 磁盘 I/O 调整

    • 推荐使用 XFS 或 EXT4 文件程序; 避免 BTRFS,怎么说呢,
    • If possible。将日志文件 与数据文件 分别放置在不同的 SSD 分区,以降低写入竞争。按理说,

    示例命令:

    # 更改默认数据和日志目录
    sudo /opt/mssql/bin/mssql-conf set filelocation.defaultdatadir /mnt/data/sql-data
    sudo /opt/mssql/bin/mssql-conf set filelocation.defaultlogdir /mnt/log/sql-log
    systemctl restart mssql-server
    

    如何在Ubuntu上更新SQL Server后轻松提升数据库性能与安全性?

    六、安全加固要点

    • TLS 加密:LATEST 安装 libssl & libldap 并启用加密通信。
      # 安装依赖库
      sudo apt install -y libssl1.1 libldap-2.4-2
      # 启用 TLS
      /opt/mssql/bin/mssql-conf set network.tlscertpath /etc/ssl/certs/sqlserver.crt
      /opt/mssql/bin/mssql-conf set network.tlskeypath /etc/ssl/private/sqlserver.key
      systemctl restart mssql-server
      
    • AUDIT & LOGGING:Keeps audit logs for login attempts and schema changes.
      /opt/mssql/bin/mssql-conf set audit.enabled true
      systemctl restart mssq​​l-server
      ​
      ​​​​
      ​​​
      
      最小化特权账户:​
      ​  * 删除不再使用的登录名;​  * 为每个业务角色分配最小权限。说起来,bash
      sqlcmd –S localhost –U SA –P 'StrongPwd!' –Q "DROP LOGIN "
      ​
      
    • 防火墙规则:只允许可信 IP 访问 14330 bash sudo ufw allow from 203.0.113.0/24 to any port 14330 proto tcp ​
    • 定期检查官方安全公告,并在补丁发布后立即执行: bash sudo apt update && sudo apt upgrade –y ​​​ ​​​ ​​​ ​​​ ​​​ ​​​ ​​​ ### 七、常见问题及快捷方式 | 症状 | 可能原因 | 尽快处理办法 | |------|----------|--------------| | **服务无法启动** | 配置文件语法错误或硬盘空间不足 | `journalctl -u mssql-server` 看日志;清理磁盘并重新运行 `mssql-conf setup` | | **连接超时** | 防火墙未放行 14333 或监听地址被绑定到本地回环 | `sudo ufw allow 14333/tcp`;检查 `/etc/hosts` 中是否误配置 | | **查询慢** | 缺少必要索引或统计信息过期 | 按上文 “索引调整” 与 “更新统计信息” 步骤操作 | | **TLS 握手失败** | 缺少 libssl 或证书方法错误 | 确认 `libssl1.1` 已安装;不过,证书方法无误并重新启动 | #### 常用排错命令合集 bash # 查看服务状态与最最近志片段 systemctl status mssql-server --no-pager # 实时查看程序资源使用情况 htop # 检查端口监听情况 ss -tlnp | grep 14330 # 查看 SQL Server 错误日志 cat /var/opt/mssql/log/errorlog | tail -n 50

      八、日常维护建议

      • 定期备份: 每周全备。每日增量,使用 Azure Blob 或本地 NAS 作离线存储。
      • Patching 策略: 每月第一周执行 `apt update && apt upgrade`,确保所有安全补丁及时落地。
      • 监控指标这方面。
    • 部署 Promeus + Grafana 插件,实时监控 CPU、内存、磁盘 I/O 与等待时间。按理说,官方提供 Exporter 可直接采集指标。 清理临时文件和旧日志:
       sudo find /var/opt/mss ql/log/*‑error.log‑* –mtime +30 –delete
      // 删除30天前的错误日志
      

    - 完成全部步骤后你的 Ubuntu 上 SQL Server 将以更高的性能、更稳固的安全姿态运行。记得把这篇文章加入收藏,以便随时回顾!-

标签:Ubuntu