图片

作者 | JiekeXu   来源 |公众号 JiekeXu DBA之路

如需转载请联系授权 | (个人微信 ID:JiekeXu_DBA)

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

图片

前  言

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

图片.png

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

在开始正文前,先来看看明天的两大活动,“OceanBase 年度发布会”与白鳝老师新书《实战国产数据库:从选型迁移到运维优化》免费签售会,北京望京凯悦酒店二楼,欢迎来面基。

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 所在系统报告时间段内遇到的问题的描述,如果您能够很清晰地描述需要分析的问题,那么这个提示对于聚焦分析结果是有帮助的,如果不是很确定是否存在某个问题,建议不要输入这个信息,因为错误的描述会错误引导分析方向,得到错误的结论。

分析结果

等待大概十分钟左右(PS:如果后期上传报告人数太多的话,分析等待时间会更长),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 报告,后面会找徐老师咨询一下。对于 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 条知识库结果。
完成回答,用时 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之路

墨天轮:https://www.modb.pro/u/4347

CSDN :https://blog.csdn.net/JiekeXu

ITPUB:https://blog.itpub.net/69968215

IFCLUB:https://ifclub.com.cn/user?type=1

腾讯云:https://cloud.tencent.com/developer/user/5645107 ——————————————————————————

图片

第三批国测公布:国产数据库新势力的破局与价值

2024 年公众号 JiekeXu DBA之路历史文章合集

2023 年公众号 JiekeXu DBA之路历史文章合集

2022 年公众号 JiekeXu DBA之路历史文章合集

2021 年公众号历史文章合集

Logo

这里是“一人公司”的成长家园。我们提供从产品曝光、技术变现到法律财税的全栈内容,并连接云服务、办公空间等稀缺资源,助你专注创造,无忧运营。

更多推荐