1. 检查SQL Server服务状态
使用systemctl status mssql-server命令确认SQL Server服务是否正在运行。若未运行,可通过sudo systemctl start mssql-server启动服务;若需重启服务(如配置变更后),使用sudo systemctl restart mssql-server。
2. 查看系统与SQL Server错误日志
tail -f /var/log/syslog或journalctl -u mssql-server(部分版本)查看系统级错误信息,定位服务启动失败、资源不足等问题。/var/opt/mssql/log/errorlog(部分版本为/var/log/mssql/errorlog),包含SQL Server自身的错误详情(如连接失败、查询语法错误、数据库损坏等),是排查SQL Server特定问题的关键依据。3. 监控系统资源使用情况
top(按CPU排序)、htop(更直观的资源展示)、free -m(内存使用情况)、df -h(磁盘空间)命令,检查是否存在CPU过载、内存不足、磁盘空间耗尽等问题(如磁盘空间不足会导致SQL Server无法写入数据)。vmstat 1(查看虚拟内存、CPU使用)、iostat 1(查看磁盘I/O)等命令,了解系统资源的历史使用趋势,识别长期瓶颈。4. 验证网络与连接配置
ping <客户端IP>测试SQL Server主机与客户端的连通性;若为远程连接,确保防火墙允许SQL Server端口(默认1433)通过(如sudo ufw allow 1433/tcp)。netstat -tuln | grep 1433或ss -tuln | grep 1433命令,确认SQL Server是否正在监听指定端口;若未监听,需检查/etc/mssql/mssql.conf中的network.tcp.port配置是否正确。5. 检查SQL Server配置参数
/etc/mssql/mssql.conf(部分版本为/var/opt/mssql/mssql.conf),重点检查以下参数:
memory.memorylimitmb:SQL Server最大内存使用量(需预留足够内存给系统和其他应用);network.tcp.port:监听端口(默认1433,远程连接需确保端口开放);filelocation.defaultdatadir/filelocation.defaultlogdir:数据文件和日志文件的存储路径(需确保磁盘空间充足且路径可写)。sudo systemctl restart mssql-server)。6. 使用SQL Server内置工具排查性能问题
sys.dm_exec_requests:查看当前正在执行的请求(包括执行时间、等待类型、CPU/内存使用);sys.dm_exec_sessions:查看当前会话信息(如登录用户、客户端地址);sys.dm_os_performance_counters:查看操作系统级性能计数器(如缓冲池命中率、锁等待次数)。sqlserver-profiler包);或使用Extended Events(更轻量级),通过SSMS创建会话并分析性能瓶颈。7. 解决常见依赖与权限问题
curl、gnupg、apt-transport-https)。若遇到依赖错误(如libldap-2.4-2缺失),可通过sudo apt install -f修复。mssql)对数据目录(/var/opt/mssql/data)、日志目录(/var/opt/mssql/log)有读写权限(chown -R mssql:mssql /var/opt/mssql);若使用sqlcmd连接,需确保用户有正确的数据库权限(如SELECT、INSERT)。