在 Debian 上配置 SQL Server 的完整步骤
一 准备与版本选择
- 建议使用 Debian 12(Bookworm),并确认已安装基础工具:sudo、curl、gnupg、apt-transport-https。
- 导入 Microsoft GPG 密钥并添加 APT 源(注意将路径中的 12 与你的系统版本保持一致):
curl https://packages.microsoft.com/keys/microsoft.asc | sudo gpg --dearmor -o /usr/share/keyrings/microsoft-archive-keyring.gpg
echo “deb [signed-by=/usr/share/keyrings/microsoft-archive-keyring.gpg] https://packages.microsoft.com/debian/12/prod/ stable main” | sudo tee /etc/apt/sources.list.d/mssql-server.list
- 说明:SQL Server 提供了 Linux 版本,可在 Debian 上安装;但诸如 SSIS/集成服务等组件在 Debian 上通常不可用,若强依赖 SSIS,建议改用受支持的 Ubuntu 或 Windows 环境。
二 安装与初始化
- 安装数据库引擎与命令行工具:
sudo apt update
sudo apt install -y mssql-server mssql-tools unixodbc-dev
- 运行首次配置,设置 SA 密码并选择版本:
sudo /opt/mssql/bin/mssql-conf setup
- 启动与开机自启:
sudo systemctl start mssql-server
sudo systemctl enable mssql-server
- 验证服务状态:
sudo systemctl status mssql-server
三 连接与基础管理
- 本地连接测试(在服务器本机):
sqlcmd -S localhost -U SA -P ‘<YourStrong!Passw0rd>’
- 远程连接(从其他主机):
sqlcmd -S <服务器IP或主机名> -U SA -P ‘<YourStrong!Passw0rd>’
- 常用连通性检查:
- 查看监听端口:ss -lntp | grep 1433
- 简单连通测试:nc -vz <服务器IP> 1433
- 安全建议:
- 使用强密码并限制 SA 的使用,按需创建低权限登录与应用账户。
- 仅开放必要端口与来源 IP,避免使用公网直连数据库。
四 网络与防火墙
- 开放默认端口 1433/TCP(示例采用 firewalld):
sudo apt install -y firewalld
sudo systemctl start firewalld && sudo systemctl enable firewalld
sudo firewall-cmd --zone=public --add-port=1433/tcp --permanent
sudo firewall-cmd --reload
- 如使用 UFW:sudo ufw allow 1433/tcp && sudo ufw reload
- 如需修改 SQL Server 监听端口或启用 TLS 加密,可通过 /opt/mssql/bin/mssql-conf 进行配置,并重启服务生效。
五 高可用与后续配置
- 高可用性(Always On 可用性组,简要流程):
- 准备多节点(各节点均安装并初始化 SQL Server,配置互通与存储)。
- 在主节点创建可用性组:
sqlcmd -S <主节点IP> -E -Q “CREATE AVAILABILITY GROUP [AG1] WITH (ENCRYPTION ON)”
- 将数据库加入可用性组:
sqlcmd -S <主节点IP> -E -Q “ALTER AVAILABILITY GROUP [AG1] ADD DATABASE [YourDB]”
- 配置故障转移策略与测试:
sqlcmd -S <主节点IP> -E -Q “ALTER AVAILABILITY GROUP [AG1] SET FAILURE_POLICY AUTO”
sqlcmd -S <备节点IP> -E -Q “ALTER AVAILABILITY GROUP [AG1] FAILOVER”
- 客户端与驱动:
- 安装 ODBC 驱动与工具(已包含在 mssql-tools 与 msodbcsql17 中),用于应用与 BI 工具连接。
- 备份与恢复:
- 制定周期性策略:定期 完整备份、辅以 差异备份 与 事务日志备份,并定期演练恢复流程。