以下是CentOS中SQL Server的故障排查技巧:
-
检查服务状态:
sudo systemctl status mssql-server # 查看服务是否运行 sudo systemctl start mssql-server # 启动服务(若未运行) -
查看日志文件:
- 错误日志:
/var/log/mssql/errorlog,用cat/less命令查看。 - 系统日志:
journalctl -u mssql-server,获取服务启动及错误信息。
- 错误日志:
-
验证网络连接:
ping服务器IP,确保网络可达。telnet或nc测试1433端口是否开放(默认端口)。
-
检查权限与配置:
- 确保
/var/opt/mssql/目录权限正确:sudo chown -R mssql:mssql /var/opt/mssql/。 - 确认配置文件
/etc/mssql/mssql.conf.d/90-sqlservr.conf中listen_addresses为0.0.0.0。
- 确保
-
处理数据库文件问题:
- 单用户模式启动SQL Server检查文件状态:
sudo /opt/mssql/bin/sqlservr -m - 修复损坏数据库:
DBCC CHECKDB ('数据库名') REPAIR_ALLOW_DATA_LOSS(注意可能丢失数据)。
- 单用户模式启动SQL Server检查文件状态:
-
监控系统资源:
- 使用
top/free -m/df -h查看CPU、内存、磁盘空间是否充足。
- 使用
-
排查防火墙与安全策略:
- 开放1433端口:
sudo firewall-cmd --zone public --add-port 1433/tcp --permanent sudo firewall-cmd --reload - 若启用SELinux,临时设置为宽容模式:
setenforce 0。
- 开放1433端口:
-
使用客户端工具连接验证:
- 通过
sqlcmd或SSMS连接,检查数据库状态及查询是否正常。
- 通过
-
分析慢查询与锁问题:
- 使用动态管理视图(DMV)如
sys.dm_exec_requests定位慢查询。 - 启用扩展事件或SQL Server Profiler追踪锁竞争。
- 使用动态管理视图(DMV)如
提示:操作前建议备份重要数据,若问题复杂可参考官方文档或联系技术支持。