当前位置: 首页 > news >正文

Oracle-RAC集群不同节点数据查询不一致

前言:

        最近处理一个应用报障,RAC集群数据库在不同的节点查询分区表数据不一致的问题,把处理和分析的过程分享给大家,希望对大家有所帮助。

问题:

        RAC集群不同节点查询同一个分区数据结果不一致问题。

原因:

1 表trade_xxxx_xxxx分区索引trade_xxxx_xxxx_gl在集群不同节点存在数据差异,导致集群不同节点访问该索引的sql查询返回结果不一致。

2 对于分区索引trade_xxxx_xxxx_gl在集群不同节点存在数据差异的根因,目前暂无发现,但是在Oracle的官方上存在类似的问题由于DDL操作导致节点内存维护的分区信息出现错误引发节点分区数据不一致的bug,怀疑很有可能是bug导致的

分析过程:

 在节点一查询表trade_xxxx_xxxx分区20220212,返回0行数据。

节点二查询表trade_xxxx_xxxx分区20220212,返回686693行数据。

执行sql期间,后台并没有ORA错误发生。

使用10053对sql解析过程进行跟踪,sql执行路径在全表扫描以及索引全扫描两者间,选择了cost消耗较低的索引全扫描方式。

测试强制sql走表访问路径,不走索引

节点一访问有数据。

节点二访问也有数据,并且两节点数据一致,都为358665。

到这里,可以确认通过索引trade_xxxx_xxxx_gl访问数据有异常。

通过analyze分析索引没有发现坏块。

analyze index trade_xxxx_xxxx_gl validate structure;

接下来,通过Oracle官方查看是否有匹配当前场景的BUG,没有发现完全匹配的BUG。

但我们可以发现在当前数据库11.2.0.4版本,存在BUG关于RAC节点同一个SQL,同一执行计划分区查询数据结果不同的问题,问题原因为DDL操作导致节点内存维护的分区信息出现错误,进而影响数据的访问,但问题根因Oracle并未进行说明。

所以,对于分区索引trade_xxxx_xxxx_gl在集群不同节点存在数据差异的根因,目前暂无发现,但是在Oracle的官方上存在类似的问题由于DDL操作导致节点内存维护的分区信息出现错误引发节点分区数据不一致的bug,怀疑很有可能是bug导致的

最后,我们对问题索引TRADE_XXXX_XXXX_GL进行了重建。

 再次通过索引查询数据,访问数据正常,问题得到修复。

问题解决:

        

1. 重建索引TRADE_XXXX_XXXX_GL修复问题。

2. 应用最新的psu补丁11.2.0.4.220719,避免潜在的bug。

相关文章:

  • 【017】基于vue.js的网易云web端(实现播放、登录)(Node接口实现)
  • 界面控件DevExpress WPF即将发布Windows 11深色主题,期待吗?
  • 【JAVA程序设计】基于SSM(非maven)图书馆座位预约管理系统
  • 基于多尺度卷积神经网络特征融合的植株叶片检测技术
  • 我的大学期末网页作业 仿学校网站制作实现 HTML+CSS西北大学新闻网带psd带js
  • vue基于web的化妆品美妆商城电子商务python flask django
  • 2022.9.29
  • 说个好事!
  • 拥有近红外染料的 花青素Cy7-四嗪, Cy7 tetrazine,CY7-四嗪 物理数据
  • 从0到1项目搭建-框架搭建(附源码)
  • Windows 11 Insider Preview Build 22621.730/22623.730(KB5017385)发布!
  • 当图网络遇上计算机视觉!计算机视觉中基于图神经网络和图Transformer的方法和最新进展...
  • 如何通过执行SQL为低代码项目提速?
  • linux_文件跟踪查看/实时查看添加到⽂件中的内容/linux日志查看(outline)
  • CDH Kerberos启动后hue报错Couldn‘t renew kerberos ticket
  • JavaScript 如何正确处理 Unicode 编码问题!
  • __proto__ 和 prototype的关系
  • Apache Pulsar 2.1 重磅发布
  • download使用浅析
  • iBatis和MyBatis在使用ResultMap对应关系时的区别
  • 从零开始在ubuntu上搭建node开发环境
  • 基于Javascript, Springboot的管理系统报表查询页面代码设计
  • 聚簇索引和非聚簇索引
  • 如何借助 NoSQL 提高 JPA 应用性能
  • 使用common-codec进行md5加密
  • 小试R空间处理新库sf
  • 一起参Ember.js讨论、问答社区。
  • 优秀架构师必须掌握的架构思维
  • 这几个编码小技巧将令你 PHP 代码更加简洁
  • 走向全栈之MongoDB的使用
  • 数据可视化之下发图实践
  • ​软考-高级-信息系统项目管理师教程 第四版【第14章-项目沟通管理-思维导图】​
  • (1)常见O(n^2)排序算法解析
  • (13)Latex:基于ΤΕΧ的自动排版系统——写论文必备
  • (4)Elastix图像配准:3D图像
  • (Java数据结构)ArrayList
  • (Matalb分类预测)GA-BP遗传算法优化BP神经网络的多维分类预测
  • (windows2012共享文件夹和防火墙设置
  • (附源码)小程序 交通违法举报系统 毕业设计 242045
  • (每日持续更新)jdk api之FileFilter基础、应用、实战
  • (三)elasticsearch 源码之启动流程分析
  • (四)JPA - JQPL 实现增删改查
  • (未解决)macOS matplotlib 中文是方框
  • (源码版)2024美国大学生数学建模E题财产保险的可持续模型详解思路+具体代码季节性时序预测SARIMA天气预测建模
  • (转)C#调用WebService 基础
  • (轉貼) UML中文FAQ (OO) (UML)
  • *Algs4-1.5.25随机网格的倍率测试-(未读懂题)
  • .NET Core 将实体类转换为 SQL(ORM 映射)
  • .NET Framework 和 .NET Core 在默认情况下垃圾回收(GC)机制的不同(局部变量部分)
  • .net MVC中使用angularJs刷新页面数据列表
  • .net6 webapi log4net完整配置使用流程
  • .NET开源快速、强大、免费的电子表格组件
  • .net中生成excel后调整宽度
  • [ C++ ] STL_vector -- 迭代器失效问题
  • [20140403]查询是否产生日志