温馨提示×

如何在Ubuntu上定制SQL Server配置

小樊
40
2025-10-28 21:03:01
栏目: 云计算

如何在Ubuntu上定制SQL Server配置

在Ubuntu上定制SQL Server配置涵盖基础安装、核心配置(端口/数据目录)、权限管理、性能调优、远程访问等多个环节,以下是详细步骤:

1. 基础安装与环境准备

首先需要导入Microsoft GPG密钥并注册SQL Server存储库,为安装做准备:

# 导入GPG密钥 wget -qO- https://packages.microsoft.com/keys/microsoft.asc | sudo tee /etc/apt/trusted.gpg.d/microsoft.asc # 注册SQL Server Ubuntu存储库(以2022版本为例,可根据需求替换为2019/2023) sudo add-apt-repository "deb [arch=amd64] https://packages.microsoft.com/ubuntu/20.04/mssql-server-2022 main" # 更新源列表并安装SQL Server sudo apt-get update sudo apt-get install -y mssql-server 

安装完成后,运行mssql-conf setup交互式命令设置SA系统管理员密码(需符合复杂度要求)并选择SQL Server版本(如Developer/Express/Standard)。

2. 核心配置调整

2.1 修改默认端口

SQL Server默认使用1433/TCP端口,若需更改,可通过以下两种方式操作:

  • 方式一:通过mssql-conf命令
    sudo /opt/mssql/bin/mssql-conf set tcpip.port 新端口号(如1434) sudo systemctl restart mssql-server 
  • 方式二:直接编辑配置文件
    打开/var/opt/mssql/mssql.conf,找到[network]部分,修改tcpip.port值:
    [network] tcpip.port = 1434 
    重启服务使配置生效。
2.2 更改数据/日志目录

默认情况下,SQL Server数据与日志文件存储在/var/opt/mssql下,可通过以下命令修改:

# 创建新目录并设置所有权(需为mssql用户) sudo mkdir -p /home/d/mssql/data /home/d/mssql/log sudo chown -R mssql:mssql /home/d/mssql # 设置新目录路径 sudo /opt/mssql/bin/mssql-conf set filelocation.defaultdatadir /home/d/mssql/data sudo /opt/mssql/bin/mssql-conf set filelocation.defaultlogdir /home/d/mssql/log # 重启服务 sudo systemctl restart mssql-server 

注意:需确保新目录具备正确的读写权限(属主为mssql用户)。

3. 权限与安全管理

3.1 配置SQL Server代理

SQL Server代理用于调度作业(如备份、维护任务),默认禁用,需手动开启:

sudo /opt/mssql/bin/mssql-conf set sqlagent.enabled true sudo systemctl restart mssql-server 
3.2 创建登录名与数据库用户

通过T-SQL命令创建SQL Server身份验证的登录名,并分配数据库角色:

-- 创建登录名(密码需符合复杂度要求) CREATE LOGIN [RemoteUser] WITH PASSWORD = 'YourSecurePassword123'; -- 切换至目标数据库(如TestDB) USE TestDB; -- 创建数据库用户并关联登录名 CREATE USER [RemoteUser] FOR LOGIN [RemoteUser]; -- 分配角色(如db_datareader/db_datawriter) ALTER ROLE [db_datareader] ADD MEMBER [RemoteUser]; ALTER ROLE [db_datawriter] ADD MEMBER [RemoteUser]; 
3.3 启用登录审核

为监控登录行为,可开启登录审核(记录成功/失败登录):

  • 通过SSMS操作:右键实例→属性安全性登录审核→选择“成功登录和失败登录”→确定→重启服务。
  • 或通过T-SQL命令(需重启服务):
    EXEC sp_configure 'show advanced options', 1; RECONFIGURE; EXEC sp_configure 'login auditing', 3; -- 3表示记录成功与失败 RECONFIGURE; 
3.4 配置防火墙

若服务器启用了UFW防火墙,需允许SQL Server端口(默认1433)的入站连接:

sudo ufw allow 1433/tcp sudo ufw reload 

4. 性能调优

4.1 系统资源限制

编辑/etc/security/limits.d/mssql-server.conf,调整SQL Server进程的资源上限(避免因资源不足导致性能瓶颈):

mssql soft nofile 1048576 # 最大打开文件数 mssql hard nofile 1048576 mssql soft nproc 131072 # 最大进程数 mssql hard nproc 131072 
4.2 内存与CPU优化
  • 限制最大内存:通过mssql-conf设置SQL Server最大内存(避免占用全部系统内存):
    sudo /opt/mssql/bin/mssql-conf set memory.maxmemory 4096 # 单位:MB(如4GB) sudo systemctl restart mssql-server 
  • 调整内核参数:修改/etc/sysctl.conf优化网络性能(如启用TCP快速打开):
    net.ipv4.tcp_fastopen = 3 net.core.somaxconn = 32768 
    应用配置:sudo sysctl -p
4.3 数据库维护

定期执行以下任务以保持性能:

  • 重建索引:针对频繁查询的表,每周执行一次索引重建(减少碎片):
    ALTER INDEX ALL ON TableName REBUILD; 
  • 更新统计信息:每月执行一次,帮助查询优化器生成更优的执行计划:
    UPDATE STATISTICS TableName; 

5. 远程访问配置

若需从远程机器连接SQL Server,需完成以下步骤:

  • 允许远程连接:通过mssql-conf开启远程访问:
    sudo /opt/mssql/bin/mssql-conf set network.remoteaccess enabled sudo systemctl restart mssql-server 
  • 创建远程登录名:使用上述“3.2 创建登录名”步骤,创建允许远程连接的账户(如RemoteUser)。
  • 测试远程连接:使用SSMS或sqlcmd工具,输入服务器IP、端口(如192.168.1.100,1434)、登录名及密码进行连接。

通过以上步骤,可完成Ubuntu上SQL Server的基础定制与优化,满足不同场景的需求。操作前建议备份重要数据,避免误操作导致数据丢失。

0