【 使用环境 】生产环境
【 OB or 其他组件 】obce-4.2.18
【 使用版本 】obce-4.2.18
【问题描述】ob_sql_audit 诊断视图数据可以保留一周吗?如果设置?
【复现路径】问题出现前后相关操作
【附件及日志】推荐使用OceanBase敏捷诊断工具obdiag收集诊断信息,详情参见链接(右键跳转查看):
【备注】基于 LLM 和开源文档 RAG 的论坛小助手已开放测试,在发帖时输入 [@论坛小助手] 即可召唤小助手,欢迎试用!
【 使用环境 】生产环境
【 OB or 其他组件 】obce-4.2.18
【 使用版本 】obce-4.2.18
【问题描述】ob_sql_audit 诊断视图数据可以保留一周吗?如果设置?
【复现路径】问题出现前后相关操作
【附件及日志】推荐使用OceanBase敏捷诊断工具obdiag收集诊断信息,详情参见链接(右键跳转查看):
【备注】基于 LLM 和开源文档 RAG 的论坛小助手已开放测试,在发帖时输入 [@论坛小助手] 即可召唤小助手,欢迎试用!
用户问题: “ob_sql_audit 诊断视图的数据在生产环境中如何设置以确保可以保留一周?”
为了确保 ob_sql_audit
视图中的数据能够保留一周,您需要调整 OceanBase 数据库的相关参数。不过,首先我们可以通过 obdiag 工具来收集当前的配置信息,以便更好地了解现有的设置。
日志采集场景: 集群基础信息
日志采集命令: obdiag gather scene run --scene=observer.base
请先使用上述命令收集集群的基础信息,并将采集到的日志提供给我们。这有助于我们了解当前的配置情况。
另外,为了确定具体的问题,在此需要您提供一些信息:
ob_sql_audit
相关的参数(如 sql_audit_retention_time
或其他类似参数)?ob_sql_audit
数据的计划或脚本?根据这些信息,我们可以给出更具体的配置建议,以确保 ob_sql_audit
数据能够按照您的需求保留一周。同时,如果需要进一步调整参数,我们会提供详细的步骤说明。
附上敏捷诊断工具 obdiag 使用帮助链接
obce 4.2.18版本
https://www.oceanbase.com/knowledge-base/oceanbase-database-1000000000217865?back=kb
根据文档库中的信息,在 OceanBase 社区版 4.2.18 版本中,ob_sql_audit
数据的保留时间可以通过设置系统变量 ob_sql_audit_percentage
和内存限制来间接控制,但并没有直接针对 sql_audit_retention_time
的配置项。具体来说:
调整 ob_sql_audit_percentage
:
ob_sql_audit_percentage
来控制 SQL Audit 内存占当前租户内存的百分比,默认值为 3%,取值范围是 [0, 80]。obclient> SET GLOBAL ob_sql_audit_percentage = 5;
关闭 SQL Audit 功能以保存现场:
obclient> ALTER SYSTEM SET enable_sql_audit = false;
/* 关闭 SQL Audit */
定期导出 SQL 审计数据:
GV$OB_SQL_AUDIT
视图中的数据导出到外部存储系统(如文件或另一张表),以便后续查询和分析。内存淘汰机制:
GV$OB_SQL_AUDIT
视图的数据存放在一个可配置的内存空间中,当内存使用或记录数达到淘汰上限时会触发自动淘汰,最久的数据优先被淘汰,类似于一个内存中的 FIFO 队列。综上所述,虽然没有直接设置 SQL 审计数据保留时间为一周的参数,但通过上述方法可以尽量延长 SQL 审计数据的保留时间。如果确实需要更长时间的数据保留,建议结合外部存储方案进行定期备份。
参考文档:ob_sql_audit_percentage 和 [SQL Audit 监控视图](分析 SQL 监控视图 → SQL Audit 监控视图)
如果您有其他问题或需要进一步的帮助,请随时告知。
具体信息可参考以下文档:
(小助手的答复已结束,如未能解决您的问题,请继续提问并等待其他同学的回复,谢谢!)
可以通过调整 ob_sql_audit_percentage
系统变量来控制 SQL Audit 所使用的内存占租户内存的百分比。默认情况下,ob_sql_audit_percentage
设置为 3,表示 SQL Audit 使用的内存占租户内存的 3%。你可以根据需要调整这个百分比,范围是 [0, 80]。