使用systemctl status mssql-server命令确认SQL Server服务是否处于**active (running)**状态。若未运行,可通过sudo systemctl start mssql-server启动服务;若启动失败,需进一步查看日志分析原因。
top或htop命令实时监控CPU、内存使用率,判断是否存在资源瓶颈(如内存不足导致SQL Server频繁换页);df -h检查磁盘空间,确保/var/opt/mssql分区(SQL Server数据目录)有足够可用空间(建议保留至少10%空闲空间)。通过tail -f /var/log/syslog或journalctl -u mssql-server -f(实时跟踪SQL Server服务日志)查看近期错误信息,重点关注**“ERROR”或“FAILED”**关键词,如服务启动失败、权限问题等。
SQL Server的详细错误日志默认位于/var/opt/mssql/log/errorlog。使用tail -n 100 /var/opt/mssql/log/errorlog查看最近100条日志,可获取连接失败、查询错误、数据库损坏等具体原因(如“Login failed for user ‘sa’”表示SA账户登录失败)。
用ping <客户端IP>测试SQL Server与客户端的连通性;若为远程连接,需确保服务器IP可达(如无防火墙拦截)。
netstat -tulnp | grep 1433(或ss -tulnp | grep 1433)检查SQL Server是否在默认端口1433上监听(若未监听,需修改/etc/mssql/mssql.conf中的port配置并重启服务);ufw防火墙,执行sudo ufw allow 1433/tcp开放端口;若使用firewalld,执行firewall-cmd --zone=public --add-port=1433/tcp --permanent && firewall-cmd --reload。sqlcmd工具本地测试连接:sqlcmd -S localhost -U sa -P <密码>(若成功,会进入SQL命令行界面);通过sudo /opt/mssql/bin/mssql-conf list查看当前配置(如memory.memorylimitmb控制SQL Server最大内存使用量,默认为物理内存的80%;network.tcpport控制监听端口)。若配置错误,可通过sudo /opt/mssql/bin/mssql-conf set <参数名> <值>修改(如sudo /opt/mssql/bin/mssql-conf set memory.memorylimitmb 4096将最大内存设为4GB),修改后需重启服务生效。
/etc/mssql/mssql.conf中的authentication.mode设置为“Mixed”);使用以下DMVs快速定位性能瓶颈:
sys.dm_exec_requests:查看当前正在执行的请求(重点关注wait_type列,如PAGEIOLATCH_SH表示磁盘I/O瓶颈,CXPACKET表示并行查询问题);sys.dm_exec_sessions:查看当前会话信息(如status为“sleeping”的会话可能为闲置连接);sys.dm_exec_sql_text:结合sys.dm_exec_requests查看执行慢的SQL语句(如SELECT * FROM sys.dm_exec_requests CROSS APPLY sys.dm_exec_sql_text(sql_handle))。CREATE INDEX或ALTER INDEX ... REBUILD为高频查询的表添加缺失索引(通过DMVs如sys.dm_db_missing_index_details识别);SELECT *,只查询所需列;使用EXPLAIN分析查询执行计划,优化复杂JOIN和子查询。SQL Server在Debian上需要libssl1.0.0、curl、gnupg等依赖库。若安装时提示“依赖问题”,可通过sudo apt install -f修复缺失的依赖;若特定库缺失(如libldap-2.4-2),需手动下载对应版本的.deb包安装(如从Debian官方仓库或Microsoft支持页面)。
定期执行sudo apt update && sudo apt upgrade更新系统和SQL Server包,修复已知漏洞和兼容性问题(如SQL Server 2022需Debian 11及以上版本)。
若系统非正常关机(如断电),需用fsck检查并修复文件系统:卸载对应分区(如umount /var/opt/mssql),然后执行fsck /dev/sdXn(sdXn为分区设备名),修复完成后重新挂载。
若使用.NET应用程序连接SQL Server,需确保sqlsrv.so驱动正确安装:
/usr/lib/x86_64-linux-gnu/odbc/libsqlsrv.so);ldd sqlsrv.so查看依赖关系(确保libodbc.so.2等依赖库存在);LD_LIBRARY_PATH环境变量(如export LD_LIBRARY_PATH=/usr/lib/x86_64-linux-gnu/odbc:$LD_LIBRARY_PATH)。