首先確認SQL Server服務是否正在運行,使用以下命令查看服務狀態:
sudo systemctl status mssql-server
若服務未啟動,可通過以下命令啟動并設置開機自啟:
sudo systemctl start mssql-server
sudo systemctl enable mssql-server
服務狀態異常(如inactive或failed)是許多問題的根源,需優先排查。
錯誤日志包含詳細的故障信息(如啟動失敗、連接錯誤、查詢異常),是定位問題的關鍵。SQL Server的錯誤日志默認位于:
/var/opt/mssql/log/errorlog
使用以下命令實時查看日志(推薦):
sudo tail -f /var/opt/mssql/log/errorlog
若日志路徑不存在,可檢查/etc/opt/mssql/mssql.conf中的logging配置項確認日志位置。
資源不足(磁盤空間、內存、CPU)會導致SQL Server運行緩慢或崩潰,需檢查以下指標:
df -h查看磁盤使用情況,確保/var/opt/mssql(SQL Server數據目錄)所在分區有足夠空間(建議至少保留2GB)。free -h查看內存占用,SQL Server默認會占用較多內存,若系統內存不足,可通過mssql-conf調整memory.memorylimitmb參數(如設置為2048表示2GB)。top或htop查看CPU占用,若SQL Server進程占用過高,需優化查詢或升級硬件。連接問題(如無法遠程訪問、Connection refused)通常與網絡或配置有關:
sudo ufw allow 1433/tcp
sudo netstat -tulnp | grep mssql檢查1433端口是否被SQL Server進程占用,若被其他進程占用,需終止沖突進程或修改SQL Server端口。sqlcmd工具測試本地連接(替換your_password為SA用戶密碼):sqlcmd -S localhost -U SA -P your_password
若本地連接成功,再測試遠程連接(需確保遠程服務器防火墻開放端口,且SQL Server配置允許遠程連接)。配置文件錯誤(如mssql.conf中的參數設置不當)會導致服務異常,需檢查以下配置文件:
/etc/opt/mssql/mssql.conf(部分版本為/etc/mssql/mssql.conf),重點檢查以下參數:
network.ipaddress:確保IP地址正確(若為空則監聽所有接口)。network.port:確保端口為1433(或自定義端口)。memory.memorylimitmb:確保內存限制合理(不低于2GB)。sudo systemctl restart mssql-server
或使用mssql-conf工具動態調整(如修改內存限制):sudo /opt/mssql/bin/mssql-conf set memory.memorylimitmb 2048
sudo systemctl restart mssql-server
SQL Server依賴的系統庫缺失或版本不兼容會導致安裝或運行失敗,常見缺失庫包括liblber-2.4.so.2、libssl1.1等??赏ㄟ^以下命令安裝缺失依賴:
sudo apt-get update
sudo apt-get install -y liblber-2.4-2 libssl1.1
若依賴問題仍存在,可使用ldd命令檢查SQL Server二進制文件的依賴(如/opt/mssql/bin/sqlservr):
ldd /opt/mssql/bin/sqlservr | grep "not found"
根據輸出安裝缺失的庫。
SQL Server提供多種診斷工具,幫助定位性能或功能問題:
sys.dm_exec_connections:查看當前連接信息。sys.dm_exec_requests:查看正在執行的請求及執行計劃。sys.dm_os_performance_counters:查看系統性能計數器(如CPU使用、內存使用)。SELECT
session_id,
text AS query_text,
start_time,
total_elapsed_time/1000 AS elapsed_seconds
FROM
sys.dm_exec_requests r
CROSS APPLY
sys.dm_exec_sql_text(r.sql_handle)
WHERE
total_elapsed_time > 5000;
mssql-tools安裝(sudo apt-get install mssql-tools)。sys.fn_xe_file_target_read_file)。若以上步驟無法解決問題,建議查閱SQL Server官方文檔(Ubuntu上SQL Server部署指南)或在技術社區(如Stack Overflow、Microsoft Q&A)尋求幫助。提供詳細的錯誤日志、配置信息及操作步驟,有助于快速定位問題。