温馨提示×

centos中sqlserver日志在哪看

小樊
41
2026-01-11 05:52:19
栏目: 云计算

CentOS 上 SQL Server 日志查看路径与方式

一、常见日志类型与默认路径

  • 错误日志 Error Log(SQL Server 实例启动、错误与告警):默认路径为 /var/log/mssql/errorlog。用于排查实例无法启动、登录失败、配置加载等问题。
  • 系统服务日志(systemd):通过 journalctl -u mssql-server 查看,包含服务启动/停止、崩溃重启、systemd 级别的事件。
  • 事务日志 Transaction Log(数据库级别,.ldf):默认位于 /var/opt/mssql/data/,每个数据库对应一个以 .ldf 结尾的文件,用于崩溃恢复与回滚。
  • 安装目录说明:SQL Server on Linux 的默认根目录为 /var/opt/mssql/,数据与日志通常位于其下的 data 子目录。

二、查看方法

  • 查看错误日志文件
    • 直接查看当前错误日志:less /var/log/mssql/errorlog
    • 实时跟踪最新内容:tail -f /var/log/mssql/errorlog
  • 查看服务日志(systemd)
    • 查看全部:journalctl -u mssql-server
    • 实时跟踪:journalctl -u mssql-server -f
    • 查看最近一次启动日志:journalctl -u mssql-server -b
  • 在 SQL Server 内读取错误日志
    • 查看全部:EXEC xp_readerrorlog 0, 1
    • 按关键字过滤(如“Login failed”):EXEC xp_readerrorlog 0, 1, N’Login failed’
    • 轮转错误日志(归档当前并新建):EXEC sp_cycle_errorlog
  • 查看数据库事务日志文件位置
    • 查询指定库(如 TestDB)的日志文件路径: SELECT name, physical_name FROM sys.master_files WHERE database_id = DB_ID(‘TestDB’) AND type = 1;
    • 若需确认默认数据目录,可检查:SELECT SERVERPROPERTY(‘InstanceDefaultDataPath’);

三、Docker 场景

  • 错误日志仍在容器内:/var/log/mssql/errorlog。进入容器查看:
    • docker exec -it <容器名> bash
    • less /var/log/mssql/errorlog
  • 若需持久化日志,启动容器时将宿主机的日志目录挂载到容器内相同路径,例如:
    • docker run … -v /host/log/mssql:/var/log/mssql …

四、快速排查建议

  • 先确认服务状态:systemctl status mssql-server;若异常,用 journalctl -u mssql-server 查看启动失败原因。
  • 再查看错误日志:tail -n 200 /var/log/mssql/errorlog 或 xp_readerrorlog 定位最近报错。
  • 若问题与某库相关,进一步确认该库的事务日志文件位置与空间使用,并结合日志备份策略进行维护。

0