sqlcmd是SQL Server提供的輕量級命令行工具,可用于連接實例并執行SQL查詢,獲取服務器基礎狀態信息。操作步驟:
sqlcmd -S your_server_name -U your_username -P your_password
(替換為實際服務器名、用戶名和密碼);SELECT @@SERVERNAME AS ServerName, @@VERSION AS Version, SERVERPROPERTY('ProductVersion') AS ProductVersion;
SSMS是微軟官方圖形化管理工具,需下載安裝(支持CentOS通過Wine或遠程連接Windows服務器)。通過SSMS可:
DMVs是SQL Server內置的性能監控接口,無需額外工具即可獲取實時運行數據。常用DMVs包括:
sys.dm_exec_requests
:查看當前正在執行的查詢(包括執行時間、等待類型、CPU使用);sys.dm_exec_sessions
:查看所有會話信息(登錄名、主機名、程序名);sys.dm_os_performance_counters
:查看系統性能計數器(如緩沖池命中率、頁面生命周期);sys.dm_io_virtual_file_stats
:查看數據庫文件的I/O統計(讀取次數、寫入延遲)。SELECT * FROM sys.dm_exec_requests WHERE status = 'running';
CentOS自帶的系統監控工具可間接反映SQL Server的資源消耗情況,適合快速排查系統級性能瓶頸:
top
:實時顯示系統進程的資源占用(CPU、內存),通過-p
參數指定SQL Server進程ID(PID),命令:top -p $(pgrep -f sqlservr)
;htop
:增強版top,支持顏色顯示和鼠標操作,更直觀查看進程排序(按F6
選擇排序字段)。查看系統虛擬內存、CPU、I/O統計,每秒刷新一次:vmstat 1
(重點關注r
(運行隊列)、b
(阻塞進程)、si/so
(交換分區使用))。
查看磁盤I/O性能(需安裝sysstat
包):iostat -x 1
(關注%util
(磁盤利用率)、await
(平均等待時間))。
收集系統活動歷史數據(需安裝sysstat
包):sar -u 1 3
(查看CPU使用率,-u
表示CPU,1
表示間隔1秒,3
表示3次)。
這些工具可快速定位SQL Server是否因系統資源不足導致性能問題。
第三方工具提供更全面的監控和告警功能,適合生產環境長期使用:
prometheus-mssql-exporter
采集SQL Server指標(如QPS、TPS、緩存命中率);prometheus.yml
,添加SQL Server監控目標:scrape_configs: - job_name: 'sqlserver' static_configs: - targets: ['your_server_ip:9304']
(exporter默認端口9304)。開源監控系統,通過check_sqlserver
插件監控SQL Server狀態(如服務可用性、數據庫大小、死鎖數量)。配置步驟:
sudo yum install nagios nagios-plugins-all
;nagios.cfg
,例如檢查SQL Server服務:define command { command_name check_sqlserver command_line $USER1$/check_sqlserver -H your_server_ip -U your_username -P your_password -s RUNNING }
;sudo systemctl restart nagios
。企業級監控工具,支持SQL Server自動發現和自定義監控項。配置步驟:
zabbix_agentd.conf
)中添加SQL Server監控項(如mssql.performance.cpu_usage
);SQL Server日志包含錯誤、警告和關鍵事件信息,是排查問題的重要依據:
/var/opt/mssql/log/errorlog
(SQL Server 2017及以上版本);tail
命令實時查看最新日志:tail -f /var/opt/mssql/log/errorlog
;