首先确认SQL Server服务是否正在运行,使用以下命令查看服务状态:
sudo systemctl status mssql-server
若服务未启动,可通过以下命令启动并设置开机自启:
sudo systemctl start mssql-server
sudo systemctl enable mssql-server
此步骤可快速判断服务是否因未启动导致的问题(如无法连接)。
日志是故障排查的核心依据,SQL Server的错误日志主要位于/var/opt/mssql/log/errorlog
(部分版本可能在/var/log/mssql/
),使用以下命令实时查看最新日志:
sudo tail -f /var/opt/mssql/log/errorlog
通过日志可定位具体错误信息(如启动失败、连接拒绝、权限问题等)。
资源不足(内存、磁盘、CPU)是SQL Server性能问题的常见原因,使用以下命令检查资源使用情况:
free -h
(查看可用内存,确保SQL Server有足够内存分配);df -h
(检查/var/opt/mssql
分区是否有足够空间,建议保留至少2GB空闲);top
或htop
(查看是否有进程占用过高CPU,如SQL Server自身或系统进程)。若出现连接问题(如客户端无法访问),需检查以下配置:
sudo netstat -tuln | grep 1433
若未监听,需检查SQL Server配置文件(/etc/opt/mssql/mssql.conf
)中的port
设置;ufw
开放1433端口:sudo ufw allow 1433/tcp
sqlcmd
工具本地测试连接(替换为实际SA密码):sqlcmd -S localhost -U SA -P 'your_password'
若本地连接失败,需检查SQL Server是否允许远程连接(通过配置文件或SQL命令EXEC sp_configure 'remote access', 1; RECONFIGURE;
)。SQL Server的主要配置文件为/etc/opt/mssql/mssql.conf
,需检查以下关键参数是否正确:
memory.memorylimitmb
(SQL Server最大内存,建议设置为物理内存的70%-80%);network.ipaddress
(监听的IP地址,若需远程访问需设置为0.0.0.0
);network.port
(监听端口,默认1433)。sudo systemctl restart mssql-server
```。
#### **6. 依赖项与兼容性检查**
- **依赖库缺失**:若安装或启动时出现`error while loading shared libraries`错误(如`liblber-2.4.so.2`、`libssl1.1`),需手动安装缺失的库:
```bash
sudo apt-get update
sudo apt-get install libldap-2.4-2 libssl1.1
若出现性能下降(如查询缓慢、资源占用高),可使用以下方法:
-- 查看当前运行的查询及CPU时间
SELECT session_id, request_id, cpu_time, logical_reads, execution_time, text
FROM sys.dm_exec_requests r
CROSS APPLY sys.dm_exec_sql_text(r.sql_handle)
ORDER BY cpu_time DESC;
-- 查看锁等待情况
SELECT request_status, wait_type, wait_time, blocking_session_id
FROM sys.dm_exec_requests
WHERE blocking_session_id <> 0;
ALTER INDEX ALL ON your_table_name REBUILD;
mssql
)对安装目录(/var/opt/mssql
)及文件有读写权限:sudo chown -R mssql:mssql /var/opt/mssql
```。