首页主机资讯如何在Ubuntu上定制SQL Server配置

如何在Ubuntu上定制SQL Server配置

时间2025-10-29 16:17:04发布访客分类主机资讯浏览823
导读:如何在Ubuntu上定制SQL Server配置 在Ubuntu上定制SQL Server配置涵盖基础安装、核心配置(端口/数据目录)、权限管理、性能调优、远程访问等多个环节,以下是详细步骤: 1. 基础安装与环境准备 首先需要导入Micr...

如何在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的基础定制与优化,满足不同场景的需求。操作前建议备份重要数据,避免误操作导致数据丢失。

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: 如何在Ubuntu上定制SQL Server配置
本文地址: https://pptw.com/jishu/737887.html
debian extract配置常见问题解答 ubuntu getconf如何获取硬件架构

游客 回复需填写必要信息