暂无图片
暂无图片
6
暂无图片
暂无图片
暂无图片

免费白嫖的 AWR 智能分析工具

894

大家好,我是JiekeXu,江湖人称“强哥”,青学会MOP技术社区主席,荣获Oracle ACE Pro称号,金仓社区最具价值倡导者KVA,崖山最具价值专家YVP,IvorySQL开源社区专家顾问委员会成员,KWDB社区MVP,墨天轮MVP,墨天轮年度“墨力之星”,拥有Oracle OCP/OCM认证,MySQL 5.7/8.0 OCP认证以及金仓KCA、KCP、KCM、KCSM证书,PCA、PCTA、OBCA、OGCA等众多国产数据库认证证书,欢迎关注我的微信公众号“JiekeXu DBA之路”,然后点击右上方三个点“设为星标”置顶,更多干货文章才能第一时间推送,谢谢!

前 言

白鳝老师最近发布的一款开源免费的 BIC-QA 工具,里面集成了 AWR 报告分析能力,只需简单配置,上传 AWR 报告,等待十几分钟后就可以在邮箱里收到分析结果,比自己吭哧吭哧翻来翻去分析 AWR 效率还高,分析结果比自己分析的还全面,适用于几乎初级中级高级 DBA 工作人员以及国产数据库从业人员。BIC-QA 还集成了大量的国产数据库运维知识图谱的数据,来帮助数据库相关从业人员更好的使用数据库,之前转载的一篇文章《BIC-QA:国产数据库的“咖啡伴侣”》 也已经提过了,只不过 AWR 分析功能还是第一次免费提供。

图片.png

BIC-QA 全称 “Business Intelligence & Knowledge Query Assistant”,是一个面向数据库知识管理的智能问答平台。它定位为企业级数据库知识检索、问答系统,旨在为数据库管理员(DBA)、开发者、运维工程师等提供即时专业的数据库相关技术支持。根据白鳝老师的描述,BIC-QA 不仅分析 Oracle AWR 以及国产数据库的 AWR 报告,今后还会演变成一个全面的 DBA 助手,会在 Github 上开源一系列包括巡检、风险分析、故障诊断、容量预测等的数据采集工具,用于现场数据的采集。将这些采集到的数据上传到 BIC-QA 的服务端,会自动生成大量的 AI 分析报告,辅助 DBA 的工作。

BIC-QA 工具安装扩展

  • 下载扩展插件文件到本地
https://gitee.com/BIC-QA/BIC-QA 或者 https://github.com/BIC-QA/BIC-QA

图片.png

  • 打开浏览器扩展管理页面

启用开发者模式,点击"加载解压的扩展"
选择我们下载解压后的扩展文件夹。

edge://extensions/

图片.png

图片.png

BIC-QA 工具配置

注册用户

  • 打开扩展设置页面注册用户

填写用户名、企业名称和邮箱地址

点击 “注册” 按钮

查收邮件获取 API Key

图片.png

配置 API 秘钥

  • 查看邮箱 API 秘钥

进入知识库服务配置页面

将邮件中的 API Key 填入对应字段

点击 “保存配置” 完成配置

图片.png

到这里您就可以进行 AWR 报告上传,自动分析了。然后就静静的等待结果发送到您的邮箱里。目前支持从 Oracle 10g 到最新的 Oracle 26ai的 AWR 报告的分析功能以及 KingbaseES KWR 分析功能。

AWR 分析

上传单个 AWR 报告,不能一次性传多个文件,点击 “执行分析”,等待邮箱接收分析结果即可。

图片.png

上面对话框里的邮箱默认是您注册 API KEY 的邮箱,不过您也可以修改邮箱,让分析结果发送到希望发送的邮箱里。“系统问题概述” 是对上传的 AWR 所在系统报告时间段内遇到的问题的描述,如果您能够很清晰地描述需要分析的问题,那么这个提示对于聚焦分析结果是有帮助的,如果不是很确定是否存在某个问题,建议不要输入这个信息,因为错误的描述会错误引导分析方向,得到错误的结论。

分析结果

等待大概十分钟左右,BIC-QA 已经生成了一份十分易读的 HTML 格式的报告,发送到您的邮箱了,您可以结合当前系统的故障现象,就更容易定位问题了。

图片.png

HTML 格式的报告包含大概如下八个部分,感兴趣的朋友可以自行测试查看报告,十分简单好用。

awrrpt_rac_103705_103708分析报告
	执行摘要(Executive Summary)
		高风险项总结:
	第二节 问题发现清单
	第三节 主要问题分析
		1. REDO问题
		2. TOPSQL-逻辑读
		3. TOPSQL-执行次数
		4. 直接路径读
		5. RAC问题(疑似)
	第四节 关键SQL语句分析
		SQL_ID: 7x2u5nq9yjz3a
		SQL_ID: 7u5j9x2n3a1b4
		SQL_ID: g6v8k3p2m7r9c
	第五节 优化建议
	第六节 参数优化建议
	第七节 总结
		附录1:关键SQL语句清单
		附录2:IO存在问题的对象(TOP 5)
		附录3:IO存在问题的表空间(TOP 10)
	第8节、ASH数据分析
		第一部分:ASH数据概览
		第二部分:ASH Top SQL分析
		第三部分:ASH Top Events分析
		第四部分:ASH Top Sessions和阻塞会话分析
		第五部分:问题时段分析
			1. 19:30–20:10:性能全面恶化期
			2. 20:20:二次波动期
		第六部分:ASH发现总结
			✅ 建议后续行动

图片.png

这里发现了一个小问题,不知道是不是 Bug,后面会找徐老师咨询一下,对于 RAC AWR 的分析,在“第四节 关键SQL语句分析”这里,所提供的 SQL_ID 居然在我原来的 AWR 报告中不存在,就连涉及到的全表扫描的表 JX_BILL_DETAIL 也是不存在的,这就让人摸不着头脑了,一连生成了两份 RAC 的 AWR 报告都是这样的情况,在最开始生成的一份单机模式下的 AWR 没有这样的问题,这一点周一会找白鳝老师当面咨询确认一下。

图片.png

BIC-QA AI 模型配置

可以使用本地自建大模型,或者订阅 AI 模型服务商的 API。在配置页添加服务提供商,填写 API 地址、Key 等信息,并测试连接。这里我使用的是阿里云百炼模型通义千问 API,使用免费的 Token 即可。

https://bailian.console.aliyun.com/?tab=model#/model-market/detail/qwen3-max

图片.png

登录自己的阿里云主账号,开通阿里云百炼后,您需要手动创建 API Key,系统不会自动生成。

图片.png

点击API Key 旁的 image 图标(上图位置 ③)获取该 API Key。然后我们需要在 “BIC-QA” 中“添加服务商”时用到此 API 密钥,如下图所示填写后,点击 “保存服务商”。

图片.png

然后点击“添加模型”,服务商选择“通义千问”,模型名称选择“qwen3-max-preview”,点击“保存模型”。

图片.png

如下图点击“聊天测试”,如果配置正确,就会出现绿色的一行字“模型"qwen3-max-preview"聊天测试成功!模型可以正常响应对话”。

图片.png

BIC-QA 使用示例

在 “BIC-QA” 插件主页面中选择一个已配置好的模型服务提供商,选择一个知识库,比如 Oracle,在输入框中输入问题并发送,稍等一会儿,即可获取你想要的参考答案。

图片.png

完成回答,用时 25 秒 搜索知识库完成 匹配到6条知识库 已完成思考,结果如下: 适用版本:通用版本(适用于 Oracle Database 10g 及以上,包括 21c 中的增强机制) Oracle RAC(Real Application Clusters)中的缓存融合(Cache Fusion) 是一项核心的集群数据一致性与性能优化技术,其根本目标是在多个数据库实例(节点)之间高效、安全地共享和同步内存中的数据块,从而避免不必要的磁盘 I/O,提升并发访问性能,并确保数据一致性。 一、缓存融合的核心原理 缓存融合的本质是:“将数据块在内存中直接传输,而不是回写磁盘再读取”。当一个实例需要访问某个数据块,而该块当前被另一个实例缓存在其 Buffer Cache 中时,系统不会强制要求从磁盘重新读取,而是通过高速私有网络(通常是 InfiniBand 或高速以太网)直接从持有该块的实例内存中“复制”或“转移”过来。 二、关键技术组件 缓存融合依赖以下几个关键服务和结构协同工作: 1. 全局缓存服务(GCS, Global Cache Service) - 负责管理数据块在多个实例间的传输。 - 跟踪每个数据块在哪个实例上、处于什么状态(如当前模式、一致性模式等)。 - 协调数据块的请求、授予、传输过程。 - 由后台进程 LMSn(Lock Manager Server) 实现,负责实际的数据块传输。 2. 全局队列服务(GES, Global Enqueue Service) - 管理跨实例的锁资源(如行级锁、表锁等),确保并发事务的数据一致性。 - 防止多个实例同时修改同一数据造成冲突。 - 由后台进程 LMD(Lock Manager Daemon) 和 LMON(Lock Monitor) 协助管理。 3. 全局资源目录(GRD, Global Resource Directory) - 分布式数据结构,记录所有数据块和锁资源的全局状态。 - GRD 并非集中存储,而是分布于所有活跃实例中,每个实例维护一部分资源的主控权(Master)。 - 当某实例请求一个数据块时,会先查询 GRD 以确定当前块的位置和状态。 4. PCM 锁机制(Parallel Cache Management Locks) - 用于控制对数据块的并发访问权限。 - 数据块在传输过程中会根据访问模式(只读、读写)申请不同级别的锁(如 NULL、Shared、Exclusive 模式)。 - 确保即使在高并发环境下,数据的一致性和完整性也不会被破坏。 三、工作流程示例 假设两个实例(Instance A 和 Instance B)组成 RAC 集群: 1. Instance A 修改了数据块 DBA=100,并将其缓存在自己的 Buffer Cache 中(此时该块为“当前模式”Current Mode)。 2. Instance B 接收到一个查询,也需要访问 DBA=100 的数据块。 3. Instance B 向 GRD 查询该块位置 → 发现由 Instance A 持有。 4. GCS 协调:Instance B 向 Instance A 发起请求。 5. GES 确保锁兼容性(例如 Instance A 持有 X 锁,则需降级或传输前构造 CR 块)。 6. LMS 进程将数据块通过私网直接传输给 Instance B(可能构造一致性读 CR 副本)。 7. Instance B 将块放入自己的 Buffer Cache,完成查询。 8. 整个过程无需访问磁盘,大大减少 I/O 开销。 四、缓存融合的优势 ✅ 减少磁盘 I/O:数据块在内存间直接传输,避免反复读盘。 ✅ 提高并发性能:多个实例可同时访问相同数据,适合 OLTP 高并发场景。 ✅ 自动透明管理:对应用完全透明,无需代码修改。 ✅ 支持动态负载均衡:结合服务管理,可灵活调度工作负载到不同节点。 ✅ 增强容错能力(21c+):后台进程可处理不可恢复错误,自动重试或修复,减少实例崩溃。 五、注意事项 - 缓存融合依赖高速、低延迟的私有互联网络(建议使用专用交换机 + Jumbo Frame + RDMA 技术如 InfiniBand 或 RoCE)。 - 会略微增加 SGA 内存开销(用于维护 GRD 和锁结构)。 - 若网络延迟高或带宽不足,反而可能导致性能下降(称为“缓存融合惩罚”)。 - 需合理设计应用,避免“热点块”竞争(如序列号、计数器表等),否则会导致频繁的块传输和锁争用。 适用版本:通用版本(适用于 Oracle Database 10g 及以上,包括 21c 中的增强机制) 参考知识库: 1. 问题:Oracle RAC 中的缓存融合(Cache Fusion)是如何工作的? 内容:Or... 收起详情 ...

图片.png

参考链接

https://mp.weixin.qq.com/s/hW9uROH8CE3ri1nHrtIe0g https://mp.weixin.qq.com/s/PW9u5qAJgVZBuBagJXY2QA https://gitee.com/BIC-QA/BIC-QA https://github.com/BIC-QA/BIC-QA https://bailian.console.aliyun.com/?tab=model#/model-market/detail/qwen3-max

全文完,希望可以帮到正在阅读的你,如果觉得有帮助,可以分享给你身边的朋友,同事,你关心谁就分享给谁,一起学习共同进步~~~

欢迎关注我的公众号【JiekeXu DBA之路】,一起学习新知识!
——————————————————————————
公众号:JiekeXu DBA之路
墨天轮:https://www.modb.pro/u/4347
CSDN :https://blog.csdn.net/JiekeXu
ITPUB:https://blog.itpub.net/69968215
腾讯云:https://cloud.tencent.com/developer/user/5645107
——————————————————————————
facebook_pro_light_1920 × 1080  副本.png

最后修改时间:2025-11-17 09:41:23
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论