- 首页 >
- 问答 >
-
云计算 >
- Debian上SQL Server的故障排查技巧
Debian上SQL Server的故障排查技巧
小樊
41
2025-11-15 00:40:20
Debian上SQL Server故障排查技巧
一 快速定位流程
- 服务状态与启动
- 确认服务是否运行:sudo systemctl status mssql-server
- 启动/重启:sudo systemctl start|restart mssql-server
- 系统日志与内核信息
- 实时查看系统日志:tail -f /var/log/syslog
- 内核与系统日志:dmesg、journalctl -xe
- 资源与磁盘
- 资源占用:top/htop、free -m
- 磁盘空间:df -h
- 网络连通与端口
- 本机监听与端口占用:ss -lntp | grep 1433 或 netstat -an | grep 1433
- 防火墙放行:sudo ufw allow 1433/tcp
- 连接测试
- 本机连接:sqlcmd -S localhost -U SA -P ‘’
- 配置与内存
- 重新配置:sudo /opt/mssql/bin/mssql-conf setup
- 调整最大内存(示例为8GB):sudo /opt/mssql/bin/mssql-conf set memory.memorylimitmb 8192 后重启服务
二 日志与定位要点
- SQL Server错误日志
- 路径:/var/opt/mssql/log/errorlog
- 查看方式:sudo tail -n 200 /var/opt/mssql/log/errorlog;也可用 journalctl -u mssql-server -f 跟踪服务日志
- 系统侧日志
- 系统日志:/var/log/syslog
- 内核日志:dmesg
- 日志轮转与归档
- 使用 logrotate 管理 SQL Server 相关日志,设置按日轮转、压缩与保留天数,避免磁盘被占满
三 常见故障与修复
- 服务无法启动
- 查看错误日志定位根因:tail -n 200 /var/opt/mssql/log/errorlog
- 重新运行配置向导:sudo /opt/mssql/bin/mssql-conf setup
- 重启服务:sudo systemctl restart mssql-server
- 无法远程连接
- 监听端口:ss -lntp | grep 1433 确认 1433 处于监听
- 防火墙:sudo ufw allow 1433/tcp
- 本机连通性:sqlcmd -S <服务器IP> -U SA -P ‘’
- 内存不足或性能异常
- 设置最大内存(示例为8GB):sudo /opt/mssql/bin/mssql-conf set memory.memorylimitmb 8192 并重启
- 优化查询、索引与并发,减少锁等待与I/O压力
- 磁盘空间告警
- 检查:df -h
- 清理旧日志、归档历史数据,确保 /var/opt/mssql 所在分区充足
四 性能与资源监控
- 系统资源
- CPU/内存:top/htop、free -m
- 磁盘I/O:iostat -x 1
- 网络:ss -s、netstat -an
- SQL Server内部指标
- 使用 DMV 查询会话、等待、内存与I/O:SELECT * FROM sys.dm_os_wait_stats;、SELECT * FROM sys.dm_db_session_space_usage;
- 借助 SSMS 性能监视器 或 SQL Server Profiler 做深入分析与抓包
五 安全与维护建议
- 加固与访问控制
- 仅开放必要端口(默认 1433/TCP),使用 ufw 或 nftables 实施最小权限
- 强密码策略与定期轮换 SA 密码,限制远程 SA 登录,优先使用域/证书或专用低权账户
- 备份与恢复
- 制定定期全量/差异/日志备份策略,保留多份异地副本,定期演练恢复
- 更新与补丁
- 保持系统与 SQL Server 组件更新:sudo apt update && sudo apt upgrade
- 变更留痕
- 调整 mssql-conf 前先备份配置,变更后记录并验证,必要时回滚