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;