## 一、引言
在企业级应用架构中,数据管理是核心环节。SQL Server 作为微软旗下的强大关系型数据库管理系统,长期以来在 Windows 平台占据主导地位。随着开源技术的发展和企业对跨平台部署需求的增长,微软在 2017 年推出了 SQL Server 的 Linux 版本,打破了以往只能运行在 Windows 系统的限制。
## 二、安装前准备
### 1. 系统要求
- 支持的 Linux 发行版:
- Red Hat Enterprise Linux (RHEL) 7/8
- SUSE Linux Enterprise Server (SLES) 12/15
- Ubuntu 16.04/18.04/20.04
- 硬件要求:
- 至少 2GB 内存
- 至少 6GB 可用磁盘空间
- 2 核处理器或更高
### 2. 网络配置
确保服务器可以访问互联网,以便下载安装包。检查防火墙设置,开放 SQL Server 默认端口 1433:
```bash
# 以 Ubuntu 为例
sudo ufw allow 1433/tcp
sudo ufw reload
# 以 RHEL/CentOS 为例
sudo firewall-cmd --zone=public --add-port=1433/tcp --permanent
sudo firewall-cmd --reload
```
## 三、SQL Server 安装
本文以 Ubuntu 20.04 为例进行安装演示。
### 1. 添加 Microsoft 软件仓库
```bash
# 导入 Microsoft 签名密钥
wget -qO- https://packages.microsoft.com/keys/microsoft.asc | sudo apt-key add -
# 添加 SQL Server 仓库
sudo add-apt-repository "$(wget -qO- https://packages.microsoft.com/config/ubuntu/20.04/mssql-server-2019.list)"
```
### 2. 安装 SQL Server
```bash
# 更新包索引
sudo apt-get update
# 安装 SQL Server
sudo apt-get install -y mssql-server
```
### 3. 配置 SQL Server
安装完成后,需要进行初始化配置:
```bash
sudo /opt/mssql/bin/mssql-conf setup
```
按照提示选择版本(如 Developer 版免费用于开发测试)、接受许可条款并设置 SA 账户密码(需强密码)。
### 4. 启动并验证服务
```bash
# 启动 SQL Server 服务
sudo systemctl start mssql-server
# 设置开机自启
sudo systemctl enable mssql-server
# 检查服务状态
sudo systemctl status mssql-server
```
## 四、安装命令行工具
为了方便管理 SQL Server,需要安装命令行工具:
### 1. 添加工具仓库
```bash
# 添加 Microsoft 工具仓库
curl https://packages.microsoft.com/config/ubuntu/20.04/prod.list | sudo tee /etc/apt/sources.list.d/msprod.list
```
### 2. 安装工具包
```bash
# 更新包索引
sudo apt-get update
# 安装 mssql-tools 和 unixODBC 开发包
sudo apt-get install -y mssql-tools unixodbc-dev
# 添加工具到 PATH 环境变量(可选)
echo 'export PATH="$PATH:/opt/mssql-tools/bin"' >> ~/.bashrc
source ~/.bashrc
```
## 五、基本配置与管理
### 1. 配置文件位置
SQL Server 的配置文件位于 `/var/opt/mssql/mssql.conf`,可以通过编辑此文件修改服务器配置参数。例如,更改默认数据和日志文件位置:
```bash
sudo /opt/mssql/bin/mssql-conf set filelocation.defaultdatadir /new/data/location
sudo /opt/mssql/bin/mssql-conf set filelocation.defaultlogdir /new/log/location
sudo systemctl restart mssql-server
```
### 2. 更改 SA 密码
```bash
sudo /opt/mssql/bin/mssql-conf set-sa-password
```
### 3. 配置远程连接
确保 SQL Server 允许远程连接:
```bash
# 启用 TCP/IP 协议(默认已启用)
sudo /opt/mssql/bin/mssql-conf set network.tcpport 1433
# 重启服务使配置生效
sudo systemctl restart mssql-server
```
## 六、数据库操作
### 1. 使用 sqlcmd 连接数据库
```bash
sqlcmd -S localhost -U SA -P 'YourPassword'
```
### 2. 创建数据库
```sql
CREATE DATABASE TestDB;
GO
```
### 3. 创建表并插入数据
```sql
USE TestDB;
CREATE TABLE Employees (
ID INT PRIMARY KEY,
Name NVARCHAR(50),
Department NVARCHAR(50)
);
INSERT INTO Employees (ID, Name, Department) VALUES (1, 'John Doe', 'IT');
GO
```
### 4. 查询数据
```sql
SELECT * FROM Employees;
GO
```
### 5. 备份数据库
```sql
BACKUP DATABASE TestDB TO DISK = '/var/opt/mssql/backup/TestDB.bak';
GO
```
## 七、高级配置
### 1. 配置内存限制
默认情况下,SQL Server 会尝试使用大部分系统内存。为了避免影响其他服务,可以限制其内存使用:
```bash
sudo /opt/mssql/bin/mssql-conf set memory.memorylimitmb 4096
sudo systemctl restart mssql-server
```
上述配置将 SQL Server 的最大内存使用限制为 4GB。
### 2. 配置字符集
默认情况下,SQL Server 使用 Latin1_General 字符集。如需更改:
```bash
# 修改 mssql.conf 文件
sudo vi /var/opt/mssql/mssql.conf
# 添加或修改以下行
[collation]
set = Chinese_PRC_CI_AS
# 重启服务
sudo systemctl restart mssql-server
```
### 3. 启用 SQL Server Agent
SQL Server Agent 用于计划任务和作业:
```bash
# 安装 SQL Server Agent
sudo apt-get install -y mssql-server-agent
# 启动 Agent 服务
sudo systemctl start mssql-server-agent
# 设置开机自启
sudo systemctl enable mssql-server-agent
```
## 八、远程管理工具
### 1. 使用 Azure Data Studio
Azure Data Studio 是一款跨平台的轻量级管理工具,支持 Windows、macOS 和 Linux:
1. 从官网下载并安装 Azure Data Studio
2. 打开应用,点击"New Connection"
3. 输入服务器名称(localhost 或 IP 地址)、认证类型(SQL Login)、用户名和密码
4. 点击"Connect"连接到 SQL Server
### 2. 使用 SQL Server Management Studio (SSMS)
SSMS 是 Windows 平台上的强大管理工具,可通过远程连接管理 Linux 上的 SQL Server:
1. 在 Windows 机器上安装 SSMS
2. 打开 SSMS,在"Connect to Server"对话框中输入 Linux 服务器的 IP 地址和端口
3. 选择认证方式并输入凭据
4. 点击"Connect"
## 九、性能监控与优化
### 1. 监控工具
- SQL Server Management Objects (SMO)
- Dynamic Management Views (DMVs)
- Azure Data Studio 中的性能图表
### 2. 优化建议
- 定期运行索引重建和统计信息更新
- 监控查询性能,优化慢查询
- 合理配置内存和 CPU 资源
- 使用适当的索引提高查询速度
## 十、故障排除
### 1. 查看错误日志
SQL Server 错误日志位于 `/var/opt/mssql/log/errorlog`,可以通过以下命令查看:
```bash
sudo tail -f /var/opt/mssql/log/errorlog
```
### 2. 常见问题及解决方法
- **无法启动服务**:检查磁盘空间、内存使用情况,查看错误日志获取详细信息
- **连接被拒绝**:检查防火墙设置、SQL Server 配置和端口监听情况
- **SA 账户锁定**:使用 mssql-conf 重置 SA 密码
## 十一、总结
从系统准备到高级配置,从日常管理到性能优化,每一个环节都进行了深入讲解。SQL Server 的 Linux 版本为企业提供了更多的选择,可以在保持强大功能的同时,充分利用 Linux 平台的优势。无论是混合云环境还是纯 Linux 架构,SQL Server 都能提供稳定可靠的数据管理解决方案。
1317

被折叠的 条评论
为什么被折叠?



