You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何查看Azure SQL Database异常日志?生产库近72小时查询方案

如何获取Azure SQL Database过去72小时的异常日志(含触发SQL语句)

嘿,我来帮你搞定这个需求——要抓取生产环境Azure SQL Database过去72小时的所有异常日志,包括完整性约束冲突、死锁这类问题,还得带上触发异常的SQL语句对吧?下面给你两种方案,优先推荐用SQL查询直接获取,也给出门户操作的步骤:

一、优先方案:SQL查询直接提取异常日志

Azure SQL Database提供了系统视图和动态管理函数来查询这些事件,分两类场景处理:

1. 通用异常查询(约束冲突、语法错误等)

使用sys.event_log系统视图,它记录了数据库级的错误事件,我们可以筛选过去72小时的错误,并提取关键信息:

SELECT
    timestamp AS 异常时间戳,
    event_type AS 事件类型,
    error_number AS 错误编号,
    message AS 错误信息,
    statement AS 引发异常的SQL语句,
    username AS 执行用户
FROM
    sys.event_log
WHERE
    event_type = 'error'
    AND timestamp >= DATEADD(HOUR, -72, GETUTCDATE())
ORDER BY
    timestamp DESC;

小贴士:sys.event_log的日志默认保留7天,完全覆盖72小时的需求。如果需要长期留存日志,得提前配置诊断设置,把日志导出到存储账户或Log Analytics工作区。

2. 死锁专项查询

死锁的信息需要用sys.dm_db_deadlock_events动态管理视图,它会记录最近的死锁事件(默认保留约100条),结合sys.dm_exec_sql_text可以提取死锁涉及的SQL语句:

WITH DeadlockInfo AS (
    SELECT
        deadlock_graph,
        timestamp AS 死锁发生时间
    FROM
        sys.dm_db_deadlock_events
    WHERE
        timestamp >= DATEADD(HOUR, -72, GETUTCDATE())
)
SELECT
    di.死锁发生时间,
    CAST(di.deadlock_graph AS XML) AS 死锁详细图,
    st.text AS 死锁涉及的SQL语句
FROM
    DeadlockInfo di
CROSS APPLY
    sys.dm_exec_sql_text(XML_VALUE(di.deadlock_graph, '//resource-list/object/@objectid')) st
ORDER BY
    di.死锁发生时间 DESC;

小技巧:死锁图是XML格式,你可以把它复制到SQL Server Management Studio(SSMS)的「死锁图」窗口,就能看到可视化的死锁流程,排查起来更直观。

二、备选方案:通过Azure门户查看异常日志

如果不想写SQL,也可以通过Azure门户的日志功能查询:

  1. 登录Azure门户,找到你的目标Azure SQL Database。
  2. 在左侧菜单的监控分组下,点击日志(如果还没启用诊断设置,系统会提示你先配置,记得勾选SQLDatabaseAuditLogs和SQLDatabaseErrorLogs,并选择导出到Log Analytics工作区)。
  3. 在日志查询编辑器中,输入以下Kusto查询语句筛选过去72小时的异常:
    SQLDatabaseErrorLogs
    | where TimeGenerated >= ago(72h)
    | where ErrorMessage != ""
    | project TimeGenerated, ErrorMessage, SqlText, ErrorNumber
    | order by TimeGenerated desc
    
  4. 点击「运行」即可看到结果,还可以导出为CSV或Excel格式保存。

针对死锁日志,需要查询Deadlocks表:

Deadlocks
| where TimeGenerated >= ago(72h)
| project TimeGenerated, DeadlockGraph, AffectedSqlCommands
| order by TimeGenerated desc

内容的提问来源于stack exchange,提问作者Jim

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.19 09:45:15