如何在Ubuntu上定制SQL Server配置
首先需要通过官方仓库安装SQL Server,确保系统满足最低要求(如2GB内存、6GB磁盘空间、2GHz处理器)。具体步骤如下:
wget -qO- https://packages.microsoft.com/keys/microsoft.asc | sudo tee /etc/apt/trusted.gpg.d/microsoft.ascsudo 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-serversudo /opt/mssql/bin/mssql-conf setup,按提示设置SA密码(需符合复杂度要求)并选择版本(如Developer、Enterprise等)。通过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。
若需更改默认的1433端口,可通过以下两种方式之一操作:
sudo /opt/mssql/bin/mssql-conf set network.tcpport 新端口号(如1434)/var/opt/mssql/mssql.conf,在[network] section添加或修改tcpport = 新端口号
修改后需重启服务:sudo systemctl restart mssql-server。SQL Server代理用于调度作业(如备份、维护任务),默认禁用。启用命令:
sudo /opt/mssql/bin/mssql-conf set sqlagent.enabled true
重启服务使设置生效。
通过mssql-conf设置SQL Server最大内存(避免占用全部系统内存,建议预留1-2GB给系统):
sudo /opt/mssql/bin/mssql-conf set memory.memorylimitmb 4096(单位:MB,如4GB)
重启服务。
根据工作负载类型调整并行查询的CPU核心数:
sudo /opt/mssql/bin/mssql-conf set sqlagent.enabled 1sudo /opt/mssql/bin/mssql-conf set sqlagent.enabled 0(或更高值)
修改后重启服务。/etc/fstab中为数据库目录添加noatime,nodiratime选项,减少文件访问时间记录的开销。使用ufw开放SQL Server端口(默认1433):
sudo apt install ufw
sudo ufw allow 1433/tcp
sudo ufw enable
sudo ufw status # 验证端口是否开放
mssql-conf启用SSL加密(需提前配置证书):
sudo /opt/mssql/bin/mssql-conf set network.forceencryption 1sudo ufw allow from 192.168.1.0/24 to any port 1433)。sudo systemctl status mssql-server --no-pager(显示服务是否运行及最近日志)。
SQL Server错误日志位于/var/opt/mssql/log/errorlog,使用以下命令实时查看:
sudo tail -f /var/opt/mssql/log/errorlog(帮助诊断启动失败、查询错误等问题)。
USE 数据库名; EXEC sp_updatestats;(优化查询计划)ALTER INDEX ALL ON 表名 REBUILD;(减少碎片,提升查询性能)BACKUP DATABASE 数据库名 TO DISK = '/backup/path/数据库名.bak';(定期备份防止数据丢失)。