ob_sql_audit数据保存时间

【 使用环境 】生产环境
【 OB or 其他组件 】obce-4.2.18
【 使用版本 】obce-4.2.18
【问题描述】ob_sql_audit 诊断视图数据可以保留一周吗?如果设置?
【复现路径】问题出现前后相关操作
【附件及日志】推荐使用OceanBase敏捷诊断工具obdiag收集诊断信息,详情参见链接(右键跳转查看):

【SOP系列 22 】——故障诊断第一步(自助诊断和诊断信息收集)

【备注】基于 LLM 和开源文档 RAG 的论坛小助手已开放测试,在发帖时输入 [@论坛小助手] 即可召唤小助手,欢迎试用!

1 个赞

用户问题: “ob_sql_audit 诊断视图的数据在生产环境中如何设置以确保可以保留一周?”

为了确保 ob_sql_audit 视图中的数据能够保留一周,您需要调整 OceanBase 数据库的相关参数。不过,首先我们可以通过 obdiag 工具来收集当前的配置信息,以便更好地了解现有的设置。

日志采集场景: 集群基础信息
日志采集命令: obdiag gather scene run --scene=observer.base

请先使用上述命令收集集群的基础信息,并将采集到的日志提供给我们。这有助于我们了解当前的配置情况。

另外,为了确定具体的问题,在此需要您提供一些信息:

  1. 您当前的 OceanBase 数据库版本是什么?
  2. 您是否已经设置了与 ob_sql_audit 相关的参数(如 sql_audit_retention_time 或其他类似参数)?
  3. 您的生产环境对性能是否有特殊要求,因为增加保留时间可能会影响性能?
  4. 您是否有定期清理或归档 ob_sql_audit 数据的计划或脚本?

根据这些信息,我们可以给出更具体的配置建议,以确保 ob_sql_audit 数据能够按照您的需求保留一周。同时,如果需要进一步调整参数,我们会提供详细的步骤说明。

附上敏捷诊断工具 obdiag 使用帮助链接

1 个赞

obce 4.2.18版本

1 个赞

SQL Audit 内存管理与淘汰机制

https://www.oceanbase.com/knowledge-base/oceanbase-database-1000000000217865?back=kb

1 个赞

根据文档库中的信息,在 OceanBase 社区版 4.2.18 版本中,ob_sql_audit 数据的保留时间可以通过设置系统变量 ob_sql_audit_percentage 和内存限制来间接控制,但并没有直接针对 sql_audit_retention_time 的配置项。具体来说:

  1. 调整 ob_sql_audit_percentage

    • 使用 ob_sql_audit_percentage 来控制 SQL Audit 内存占当前租户内存的百分比,默认值为 3%,取值范围是 [0, 80]。
    • 设置较高的百分比可以增加 SQL 审计数据在内存中的保留量,从而延长其可见时间。
    obclient> SET GLOBAL ob_sql_audit_percentage = 5;
    
  2. 关闭 SQL Audit 功能以保存现场

    • 如果需要确保特定时间段内的 SQL 审计数据不被清除,可以在关键操作期间暂时关闭 SQL Audit 功能,避免新数据覆盖旧数据。
    obclient> ALTER SYSTEM SET enable_sql_audit = false;
    /* 关闭 SQL Audit */
    
  3. 定期导出 SQL 审计数据

    • 为了长期保存 SQL 审计数据,建议定期将 GV$OB_SQL_AUDIT 视图中的数据导出到外部存储系统(如文件或另一张表),以便后续查询和分析。
  4. 内存淘汰机制

    • GV$OB_SQL_AUDIT 视图的数据存放在一个可配置的内存空间中,当内存使用或记录数达到淘汰上限时会触发自动淘汰,最久的数据优先被淘汰,类似于一个内存中的 FIFO 队列。

综上所述,虽然没有直接设置 SQL 审计数据保留时间为一周的参数,但通过上述方法可以尽量延长 SQL 审计数据的保留时间。如果确实需要更长时间的数据保留,建议结合外部存储方案进行定期备份。

参考文档:ob_sql_audit_percentage 和 [SQL Audit 监控视图](分析 SQL 监控视图 → SQL Audit 监控视图)

如果您有其他问题或需要进一步的帮助,请随时告知。

具体信息可参考以下文档:

  1. sql_audit_memory_limit
  2. ALTER_STATS_HISTORY_RETENTION
  3. replica_safe_remove_time
  4. 分析 SQL 监控视图
  5. 进行 Sysbench 测试
  6. information_schema.SESSION_STATUS
  7. log_archive_checkpoint_interval
  8. balance_blacklist_retry_interval
  9. GV$OB_SQL_AUDIT

(小助手的答复已结束,如未能解决您的问题,请继续提问并等待其他同学的回复,谢谢!)

可以通过调整 ob_sql_audit_percentage 系统变量来控制 SQL Audit 所使用的内存占租户内存的百分比。默认情况下,ob_sql_audit_percentage 设置为 3,表示 SQL Audit 使用的内存占租户内存的 3%。你可以根据需要调整这个百分比,范围是 [0, 80]。