SQL Server在Ubuntu上故障排查方法
导读:Ubuntu上SQL Server故障排查方法 一 快速定位流程 检查服务状态:运行命令:sudo systemctl status mssql-server --no-pager,确认服务是否active (running ;若异常,先...
Ubuntu上SQL Server故障排查方法
一 快速定位流程
- 检查服务状态:运行命令:sudo systemctl status mssql-server --no-pager,确认服务是否active (running);若异常,先查看状态输出的报错摘要。
- 查看系统日志:运行命令:sudo journalctl -u mssql-server -b --no-pager,必要时加 -r 反向输出、-S “2025-12-12 00:00:00” 限定时间范围,快速定位启动或运行期报错。
- 查看SQL Server错误日志:SQL Server 引擎日志位于 /var/opt/mssql/log/errorlog,可用 sudo tail -f /var/opt/mssql/log/errorlog 实时跟踪;如需检索关键字,可用 grep。
- 验证本地连接:先在本机用 sqlcmd -S 127.0.0.1 -U SA 测试凭据与实例连通性,排除客户端问题后再做远程排查。
- 复核关键配置:如端口、内存、认证方式等,必要时用 sudo /opt/mssql/bin/mssql-conf 调整并重启服务。
以上步骤覆盖了服务、系统日志、引擎日志、连通性与配置的闭环排查路径。
二 常见故障与处理要点
- 服务无法启动
- 优先查看 /var/opt/mssql/log/errorlog 与 journalctl 中的首条报错;常见原因包括配置错误、权限不足、资源不足或依赖库缺失。
- 资源检查:用 df -h 确认磁盘可用空间(建议预留≥2GB),用 free -h 检查内存;资源紧张会导致启动失败或异常退出。
- 依赖库缺失:如遇 error while loading shared libraries: liblber-2.4.so.2 或 libssl1.1,安装对应包(如 libldap-2.4-2、libssl1.1)后重试。
- 配置变更后需重启:sudo systemctl restart mssql-server。
- 端口与防火墙问题
- 默认监听端口为 1433;检查占用:sudo ss -ltnp | grep 1433 或 sudo lsof -i :1433;若被占用,处理占用进程或调整 SQL Server 端口。
- 在 UFW 放行端口:sudo ufw allow 1433/tcp;云主机还需在安全组放通。
- 远程连接失败
- 先用本机 sqlcmd -S 127.0.0.1 验证凭据;远程时用 sqlcmd -S < 服务器IP> ,1433 -U SA 测试。
- 确认网络可达(ping/ telnet 到 1433)、防火墙与安全组策略正确。
- 加密与证书问题
- 若启用 TLS/证书,确保证书有效且未过期;证书异常可能导致服务启动或客户端握手失败。
- 资源瓶颈与性能问题
- 用 top/htop/vmstat/iostat 观察 CPU/内存/磁盘IO;必要时调整 SQL Server 内存上限等参数并重试。
以上要点覆盖了最常见的启动、网络、依赖、证书与性能类问题及处置路径。
- 用 top/htop/vmstat/iostat 观察 CPU/内存/磁盘IO;必要时调整 SQL Server 内存上限等参数并重试。
三 常用命令清单
| 目标 | 命令示例 |
|---|---|
| 服务状态 | sudo systemctl status mssql-server --no-pager |
| 实时系统日志 | sudo journalctl -u mssql-server -b -f |
| 引擎错误日志 | sudo tail -f /var/opt/mssql/log/errorlog |
| 端口占用 | sudo ss -ltnp |
| 本机连通性 | sqlcmd -S 127.0.0.1 -U SA |
| 远程连通性 | sqlcmd -S ,1433 -U SA |
| 防火墙放行 | sudo ufw allow 1433/tcp |
| 重启服务 | sudo systemctl restart mssql-server |
| 修改配置 | sudo /opt/mssql/bin/mssql-conf set |
| 资源检查 | df -h;free -h |
| 以上命令覆盖日常排查的高频操作,便于快速执行与定位。 |
四 远程连接与加密配置
- 基础连通性:确保客户端能解析服务器主机名或直接使用 IP;在服务器与网络侧放行 1433/tcp。
- 强制加密场景:客户端连接字符串中设置 Encrypt=True;若使用自签证书或测试环境,可临时设置 TrustServerCertificate=True(生产环境不建议)。
- 证书健康:若服务因证书错误无法启动或客户端握手失败,检查证书有效期与指纹,必要时重新生成并更新 SQL Server 证书配置。
- 连接失败速查:本机可连而远程不可连,优先排查 防火墙/安全组、端口占用 与 监听地址绑定。
以上做法可系统化解决远程访问与加密相关的连接问题。
五 实用建议
- 变更前备份关键配置与数据;修改 mssql-conf 后务必重启服务以生效。
- 日志优先:先查 /var/opt/mssql/log/errorlog 与 journalctl,多数问题可在日志中找到根因。
- 资源阈值:保持至少2GB 可用磁盘空间与合理内存余量,避免资源不足引发异常。
- 工具组合:本地用 sqlcmd 快速验证,远程用 SSMS 进行更深入的诊断与管理。
这些做法能显著提升排障效率并降低风险。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: SQL Server在Ubuntu上故障排查方法
本文地址: https://pptw.com/jishu/770283.html
