如何在Ubuntu上定制SQL Server配置
如何在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 = 32768sudo 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的基础定制与优化,满足不同场景的需求。操作前建议备份重要数据,避免误操作导致数据丢失。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: 如何在Ubuntu上定制SQL Server配置
本文地址: https://pptw.com/jishu/737887.html
