温馨提示×

如何在Ubuntu上定制SQL Server的配置

小樊
42
2025-10-18 05:00:53
栏目: 云计算

如何在Ubuntu上定制SQL Server配置

1. 安装SQL Server

首先需要通过官方仓库安装SQL Server,确保系统满足最低要求(如2GB内存、6GB磁盘空间、2GHz处理器)。具体步骤如下:

  • 导入GPG密钥wget -qO- https://packages.microsoft.com/keys/microsoft.asc | sudo tee /etc/apt/trusted.gpg.d/microsoft.asc
  • 注册存储库(以Ubuntu 20.04为例):sudo add-apt-repository "$(wget -qO- https://packages.microsoft.com/config/ubuntu/20.04/mssql-server-2022.list)"
  • 更新源并安装sudo apt-get update && sudo apt-get install -y mssql-server
  • 初始化配置:运行sudo /opt/mssql/bin/mssql-conf setup,按提示设置SA密码(需符合复杂度要求)并选择版本(如Developer、Enterprise等)。

2. 基础配置调整

2.1 更改默认目录

通过mssql-conf工具修改数据、日志、备份等文件的默认存储路径(需提前创建目标目录并赋予mssql用户所有权):

sudo /opt/mssql/bin/mssql-conf set filelocation.defaultdatadir /new/data/path
sudo /opt/mssql/bin/mssql-conf set filelocation.defaultlogdir /new/log/path
sudo chown -R mssql:mssql /new/data/path /new/log/path

修改后需重启服务生效:sudo systemctl restart mssql-server

2.2 修改TCP端口

若需更改默认的1433端口,可通过以下两种方式之一操作:

  • 命令行方式sudo /opt/mssql/bin/mssql-conf set network.tcpport 新端口号(如1434)
  • 配置文件方式:编辑/var/opt/mssql/mssql.conf,在[network] section添加或修改tcpport = 新端口号 修改后需重启服务:sudo systemctl restart mssql-server

2.3 启用SQL Server代理

SQL Server代理用于调度作业(如备份、维护任务),默认禁用。启用命令: sudo /opt/mssql/bin/mssql-conf set sqlagent.enabled true 重启服务使设置生效。

3. 性能优化配置

3.1 内存限制

通过mssql-conf设置SQL Server最大内存(避免占用全部系统内存,建议预留1-2GB给系统): sudo /opt/mssql/bin/mssql-conf set memory.memorylimitmb 4096(单位:MB,如4GB) 重启服务。

3.2 最大并行度(maxdop)

根据工作负载类型调整并行查询的CPU核心数:

  • OLTP系统(高并发小事务):sudo /opt/mssql/bin/mssql-conf set sqlagent.enabled 1
  • OLAP系统(大数据量查询):sudo /opt/mssql/bin/mssql-conf set sqlagent.enabled 0(或更高值) 修改后重启服务。

3.3 文件系统优化

  • 格式化要求:使用XFS或EXT4文件系统(避免BTRFS),确保高I/O性能。
  • 挂载选项:在/etc/fstab中为数据库目录添加noatime,nodiratime选项,减少文件访问时间记录的开销。

4. 安全配置

4.1 防火墙设置

使用ufw开放SQL Server端口(默认1433):

sudo apt install ufw
sudo ufw allow 1433/tcp
sudo ufw enable
sudo ufw status  # 验证端口是否开放

4.2 远程连接安全

  • 启用加密:通过mssql-conf启用SSL加密(需提前配置证书): sudo /opt/mssql/bin/mssql-conf set network.forceencryption 1
  • 限制IP访问:在防火墙中设置规则,仅允许可信IP访问1433端口(如sudo ufw allow from 192.168.1.0/24 to any port 1433)。

5. 维护与管理

5.1 查看服务状态

sudo systemctl status mssql-server --no-pager(显示服务是否运行及最近日志)。

5.2 查看日志文件

SQL Server错误日志位于/var/opt/mssql/log/errorlog,使用以下命令实时查看: sudo tail -f /var/opt/mssql/log/errorlog(帮助诊断启动失败、查询错误等问题)。

5.3 定期维护任务

  • 更新统计信息USE 数据库名; EXEC sp_updatestats;(优化查询计划)
  • 重建索引ALTER INDEX ALL ON 表名 REBUILD;(减少碎片,提升查询性能)
  • 备份数据库:使用BACKUP DATABASE 数据库名 TO DISK = '/backup/path/数据库名.bak';(定期备份防止数据丢失)。

0