首页主机资讯centos下sqlserver如何故障排查

centos下sqlserver如何故障排查

时间2025-12-16 17:27:03发布访客分类主机资讯浏览1257
导读:CentOS 下 SQL Server 故障排查清单 一 快速定位流程 检查服务状态:运行命令:systemctl status mssql-server;若未运行,执行:systemctl start mssql-server。 查看错...

CentOS 下 SQL Server 故障排查清单

一 快速定位流程

  • 检查服务状态:运行命令:systemctl status mssql-server;若未运行,执行:systemctl start mssql-server
  • 查看错误日志:SQL Server 错误日志默认在 /var/log/mssql/errorlog;同时用 journalctl -u mssql-server 查看 systemd 日志,定位启动失败或崩溃线索。
  • 校验文件权限:确保数据目录属主正确:chown -R mssql:mssql /var/opt/mssql
  • 检查监听与端口:确认实例在 1433 端口监听,必要时在 /etc/mssql/mssql.conf.d/90-sqlservr.conf 设置 listen_addresses=0.0.0.0 以监听所有地址。
  • 网络连通性:在客户端测试 pingtelnet 服务器IP 1433(或 nc -zv 服务器IP 1433),确认端口可达。
  • 防火墙放行:在服务器执行:firewall-cmd --zone=public --add-port=1433/tcp --permanent & & firewall-cmd --reload
  • 客户端侧验证:安装并使用 sqlcmd/ODBC 测试连接,排除连接字符串错误(服务器地址、端口、数据库、账号、密码)。

二 常见故障与修复

  • 服务反复崩溃或无法启动(systemctl 显示 signal/ABRT):先用 journalctl -xe 找到具体报错;若日志出现 “Unable to read instance id from /var/opt/mssql/.system/instance_id”,先备份该文件后删除,再启动服务,实例会自动生成新的 instance_id(注意:这可能导致依赖 NEWSEQUENTIALID() 的表出现 GUID 顺序性变化)。
  • 断电或异常关机后的启动异常:先停止服务,再以单用户模式观察输出:/opt/mssql/bin/sqlservr -m;若检测到数据文件异常,可用 DBCC CHECKDB 检查并在评估风险后执行修复(见下一节注意事项)。
  • 端口未监听或仅本地可连:核对 listen_addresses 配置为 0.0.0.0,确认 SELinux 未拦截(必要时临时 setenforce 0 验证),并用 ss -lntp | grep 1433netstat -tulpen | grep 1433 检查监听地址与进程。
  • 防火墙/安全组阻断:在服务器放行 1433/tcp 并重新加载规则;云环境同时检查云安全组策略。
  • 登录失败或权限不足:核对 SA 或域/本地账号是否被锁定、密码是否正确、是否授予了目标数据库的 CONNECT 与所需权限;必要时在 SSMS 或 sqlcmd 中重置密码并审计登录失败记录。

三 性能与资源瓶颈排查

  • 系统资源:在 OS 侧用 top/vmstat/mpstat/iostat 观察 CPU、内存、I/O 是否成为瓶颈;结合 nmon/sar 做趋势分析。
  • SQL Server 内部:查询 sys.dm_exec_requests / sys.dm_exec_sessions / sys.dm_exec_query_stats 定位长时运行与阻塞会话;用 DBCC SQLPERF(LOGSPACE) 检查日志空间;通过 Extended Events 捕获慢查询、锁等待与死锁。
  • 内存压力:从实例视角查询 sys.dm_os_sys_memory 了解物理/虚拟内存与内存压力;必要时在 SSMS 或 T‑SQL 中合理设置 最大服务器内存(max server memory),避免占用过多系统内存。
  • 监控与告警:结合 ZabbixPrometheus + Grafana(prometheus-mssql-exporter) 等做长期可视化监控与阈值告警。

四 连接问题专项排查

  • 端到端连通性:从客户端依次验证 pingtelnet/nc 到 1433、以及应用连接字符串(主机、端口、数据库、加密/信任证书、登录方式)。
  • 服务与端口:确认 mssql-server 已运行且实例在 1433 监听;若监听在 127.0.0.1,需调整 listen_addresses0.0.0.0
  • 防火墙与安全策略:服务器本地防火墙放行 1433/tcp;云主机同步检查安全组入站规则。
  • 认证与授权:确保登录账号存在、未被锁定、密码正确,并具备目标库访问权限;必要时在 SSMS 的活动监视器中排查阻塞与长事务。

五 数据安全与恢复建议

  • 变更前先备份:对 /var/opt/mssql 做完整备份(含 .system 目录),尤其是 instance_id 等关键文件。
  • 谨慎修复:仅在充分评估数据风险后执行 DBCC CHECKDB … REPAIR_ALLOW_DATA_LOSS;优先尝试 REPAIR_REBUILD 或从备份还原。
  • 定期维护:建立 日志备份索引/统计信息维护一致性检查 的计划任务;保留可用备份与恢复演练记录。
  • 高可用:关键业务建议配置 Always On 可用性组 或定期离线备份,缩短 RTO/RPO。

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: centos下sqlserver如何故障排查
本文地址: https://pptw.com/jishu/772992.html
centos里sqlserver如何负载均衡 centos中sqlserver如何安全设置

游客 回复需填写必要信息