首页主机资讯CentOS上SQL Server故障排查步骤

CentOS上SQL Server故障排查步骤

时间2025-12-10 15:53:04发布访客分类主机资讯浏览800
导读:CentOS上SQL Server故障排查步骤 一 快速定位与通用检查 检查服务状态与启动失败原因:执行systemctl status mssql-server;若失败,用journalctl -u mssql-server -xe查看...

CentOS上SQL Server故障排查步骤

一 快速定位与通用检查

  • 检查服务状态与启动失败原因:执行systemctl status mssql-server;若失败,用journalctl -u mssql-server -xe查看详细错误。
  • 查看SQL Server错误日志:默认路径为**/var/log/mssql/errorlog**(亦可能在**/var/opt/mssql/log/errorlog**),从最近的错误与时间戳定位根因。
  • 校验目录权限与所有权:确保数据目录属主为mssql:mssql,可执行chown -R mssql:mssql /var/opt/mssql
  • 验证监听与端口:确认实例在1433端口监听,必要时在**/etc/mssql/mssql.conf.d/90-sqlservr.conf中设置listen_addresses=0.0.0.0**以监听所有地址。
  • 防火墙放行:执行firewall-cmd --zone=public --add-port=1433/tcp --permanent & & firewall-cmd --reload
  • 网络连通性测试:用ping测试可达,用telnet 服务器IP 1433nc -zv 服务器IP 1433验证端口连通。
  • 客户端工具与连接串:确保已安装sqlcmd/ODBC,连接串中服务器地址、端口、数据库、用户名、密码正确。

二 常见故障场景与处理

  • 断电或异常关机后无法启动
    1. 先查看**/var/log/mssql/errorlogjournalctl**定位文件/一致性错误;
    2. 以单用户模式启动以获取更详细输出:sudo /opt/mssql/bin/sqlservr -m
    3. 若检测到不一致,先做全库检查:sqlcmd -S localhost -U SA -Q “DBCC CHECKDB(‘数据库名’)”;仅在充分评估风险后,才使用REPAIR_ALLOW_DATA_LOSS并执行完整备份;
    4. 修复权限:chown -R mssql:mssql /var/opt/mssql
  • 服务反复崩溃或启动即退出
    1. 检查是否因残留进程/文件锁导致,先彻底停止服务并清理:
      • systemctl stop mssql-server
      • ps -ef | grep -E “sqlservr|paldumper”
      • pkill -9 -f “sqlservr”(谨慎使用)
    2. 校验**/var/opt/mssql**目录权限与属主;
    3. 若日志出现与持久化注册表 licensing.hiv相关的权限拒绝,清理残留进程后重试启动。
  • 实例ID文件丢失导致启动失败
    现象:journalctl提示无法读取**/var/opt/mssql/.system/instance_id**;
    处理:先备份该文件(若存在),再删除并重启,实例会自动生成新的instance_id文件。
  • 无法远程连接
    1. 确认服务运行且监听1433
    2. 防火墙放行1433/tcp
    3. 配置listen_addresses=0.0.0.0
    4. 验证客户端网络与端口连通(telnet/nc);
    5. 检查登录账号权限与连接字符串参数。

三 监听与网络配置要点

  • 配置文件路径:/etc/mssql/mssql.conf.d/90-sqlservr.conf,常用项为listen_addresses=0.0.0.0(允许所有接口)。修改后重启服务:systemctl restart mssql-server
  • 端口与防火墙:默认端口1433;开放命令:firewall-cmd --zone=public --add-port=1433/tcp --permanent & & firewall-cmd --reload
  • 连通性验证:优先用nc -zv 服务器IP 1433telnet 服务器IP 1433确认端口开放与实例监听。

四 性能与阻塞排查

  • 动态管理视图定位问题:
    • 当前请求与会话:sys.dm_exec_requests、sys.dm_exec_sessions
    • 查询统计与执行计划:sys.dm_exec_query_stats、sys.dm_exec_plan_attributes
  • 活动监控:在SSMS中使用活动监视器观察长时运行或阻塞会话。
  • 扩展事件:创建会话捕获长时间运行SQL锁竞争,便于深入分析。

五 最小化复现与回退建议

  • 变更前备份关键配置与数据:
    • 配置文件:/etc/mssql/ 下相关文件;
    • 数据与目录:/var/opt/mssql/(必要时整体备份);
    • 关键系统文件:如**/var/opt/mssql/.system/instance_id**。
  • 回退策略:出现异常时先恢复配置文件与目录权限,再按错误日志逐项修复;对涉及数据修复的操作(如REPAIR_ALLOW_DATA_LOSS)务必在完整备份后执行。

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


若转载请注明出处: CentOS上SQL Server故障排查步骤
本文地址: https://pptw.com/jishu/768371.html
如何迁移SQL Server到CentOS平台 CentOS SQL Server配置指南

游客 回复需填写必要信息