数据库备份DBS在备份数据的同时,支持将数据库审计数据备份到云上。数据库审计数据为用户操作数据库的所有SQL日志,如查询、DML、DDL等记录。

前提条件

  • 数据库为SQL Server 2012及以上版本。
  • 已完成SQL Server物理备份,开启增量备份与审计备份的开关。
  • 在服务器master数据库的对应磁盘上,需要有大于1GB的存储空间,用于存储审计数据。

费用说明

DBS会调用DLA接口查询目标备份集,该过程中DBS不会产生费用,DLA会根据扫描的数据量进行计费,详情请参见 计费方式概述

功能说明

您可以在控制台中开启审计备份功能,DBS系统将通过Extended Events Sessions功能,将审计数据保存至master数据库所在根目录下的AUDITLOG文件夹中。

同时,DBS会在云上创建 mssql_audit表,将审计数据备份至该表中,记录执行SQL的时间点、SQL内容、耗时等审计信息,关于 mssql_audit表的更多介绍,请参见 mssql_audit表。您可以在云上便捷地查询与分析审计数据,具体操作,请参见 分析审计数据
说明 本地的 AUDITLOG文件夹最多不会超过1GB,请勿删除或移动该文件夹。

步骤一:备份审计数据

具体操作,请参见 SQL Server数据库的物理备份
说明 在配置备份计划时,需要开启增量备份与 审计备份的开关。

步骤二:分析审计数据

  1. 登录DBS控制台
  2. 单击左侧导航栏中的备份计划,然后在上方选择目标地域。
  3. 找到目标备份计划ID,单击右侧操作列下的管理
  4. 在页面左侧,选择备份任务 > 审计数据备份
  5. 找到目标审计文件名,单击页面右侧操作列下的查询审计
    查询审计
    说明 您可以通过 审计文件开始/结束时间查找目标审计文件,每个审计文件中仅包含该时间内的审计数据。
  6. 查询备份集弹框中,单击确定
  7. DLA控制台SQL执行页面,DLA会自动构建DBS备份集中库表结构并显示在控制台左侧对象列表中,您可以在窗口中输入SQL语句,单击同步执行,即可快速查询审计数据。
    在线查询审计数据
    说明
    • DLA SQL是基于Presto构建的,关于SQL查询的一些语法与高级查询语句,可以通过控制台页面右上角的语法手册DLA常见SQL查看。
    • 常见的审计数据分析SQL如下:
      • SELECT timestamp,sql_text,duration FROM mssql_audit LIMIT 500;

        注释:查询执行时间点、SQL语句以及SQL的执行时间。

      • SELECT * FROM (SELECT query_hash,avg(duration) as avg,count(1),sql_text FROM mssql_audit group by query_hash ) order by avg desc;

        注释:根据SQL模版ID进行聚合,找出来平均执行时间最长的SQL类型,根据执行时间从长到短进行排序。

mssql_audit表

mssql_audit表的字段说明如下。

字段名 说明
name 事件类型。
timestamp 事件发生的时间点。
duration 事件持续的时长,单位为微秒。
query_hash SQL模版ID。
说明 可用该模版进行聚合,分析哪种的SQL类型执行时间较长。
sql_text SQL的执行内容。
database_name 数据库名字。
logical_read 逻辑读次数。
physical_read 物理读次数。