Debian 上 SQL Server 故障排查清单
一 快速定位流程
- 确认服务状态:运行 sudo systemctl status mssql-server,若未运行则执行 sudo systemctl start mssql-server 并设置开机自启 sudo systemctl enable mssql-server。
- 查看引擎日志:使用 tail -f /var/opt/mssql/log/errorlog 获取启动失败、登录失败、端口监听等第一手线索。
- 查看系统日志:用 journalctl -u mssql-server -xe 或 tail -f /var/log/syslog 捕捉服务启动/崩溃/资源异常信息。
- 本机连通性自检:执行 sqlcmd -S localhost -U SA -P ‘’,能连上说明引擎与本地认证基本正常。
- 资源与磁盘:检查 df -h(磁盘空间)、free -m / top(内存/CPU),避免因 磁盘满 或 OOM 导致异常。
二 常见故障与修复要点
- 服务无法启动
- 查日志定位根因:tail -f /var/opt/mssql/log/errorlog;必要时用 journalctl -u mssql-server -xe 查看 systemd 报错。
- 修复后重启:sudo systemctl restart mssql-server。
- 远程连接失败
- 防火墙放行:
- UFW:sudo ufw allow 1433/tcp
- firewalld:sudo firewall-cmd –zone=public –add-port=1433/tcp –permanent && sudo firewall-cmd –reload
- 确认监听端口:在服务器上执行 sudo ss -lntp | grep 1433 或 netstat -an | grep 1433,确保 TCP 1433 处于监听。
- 远程连接测试:从客户端执行 sqlcmd -S <服务器IP或主机名>,1433 -U SA -P ‘’。
- 防火墙放行:
- 身份验证与连接字符串
- 核对 SA 密码与连接字符串语法;若使用 Windows 身份验证,需确认环境已正确配置以支持从 Linux 进行 Windows 身份验证。
- 客户端驱动问题
- 确认驱动 sqlsrv.so 路径正确,使用 ldd sqlsrv.so 检查依赖是否缺失;必要时设置 LD_LIBRARY_PATH 指向驱动目录。
三 日志与定位命令速查
| 目标 | 命令示例 | 关注点 |
|---|---|---|
| 服务状态 | systemctl status mssql-server | Active/Failed、最近日志片段 |
| 引擎日志 | tail -f /var/opt/mssql/log/errorlog | 启动错误、登录失败、端口监听 |
| 系统日志 | journalctl -u mssql-server -xe | systemd 启动细节、崩溃回溯 |
| 资源使用 | top, free -m, df -h | CPU/内存压力、磁盘空间 |
| 端口监听 | ss -lntp | 是否监听 1433/TCP |
| 远程连通 | sqlcmd -S ,1433 -U SA -P ‘’ | 能否本机/远程登录 |
| 依赖检查 | ldd sqlsrv.so | 驱动依赖是否缺失 |
四 配置与性能优化建议
- 远程访问:确保防火墙放行 1433/TCP,并在网络可达前提下进行远程连接测试。
- 资源与参数:结合负载设置 max server memory,避免因内存争用导致性能劣化或失败;持续监控 CPU/IO/锁等待。
- 工具与方法:在可用的情况下,使用 SSMS 的“性能监视器”、DMV 查询与 SQL Server Profiler 定位慢查询与阻塞。
五 安全与变更注意事项
- 强口令与最小权限:为 SA 设置强密码,生产环境避免使用 SA 进行应用连接,按需创建低权限登录与用户。
- 变更前备份:修改配置或升级前先备份数据库与关键配置,变更后在测试环境验证再上线。
- 官方资源:查阅 Microsoft SQL Server on Linux 官方文档与社区,获取版本特定的参数与已知问题说明。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,请发送邮件至 55@qq.com 举报,一经查实,本站将立刻删除。转转请注明出处:https://www.szhjjp.com/n/1468331.html