在一个表上建索引时,报ORA-01410错误,我们查询这个表来重现这个错误:

view plain copy to clipboard print ?

Connected to:

Oracle9i Enterprise Edition Release 9.2.0.6.0 - 64bit Production

With the Partitioning option

JServer Release 9.2.0.6.0 - Production

SQL> set timing on

SQL> set time on

14:20:03 SQL> select /*+ full(a) no_index(a) */ count(*) from crm.cust_order a;

select /*+ full(a) no_index(a) */ count(*) from crm.cust_order a

*

ERROR at line 1:

ORA-01410: invalid ROWID

ORA-01410错误通常见于通过索引访问表,而索引或表由逻辑上的损坏。而这里显示没有通过索引访问表?那问题出在哪里呢?在这种情况下,这个错误与ORA-08103极其类似,

view plain copy to clipboard print ?

14:27:00 SQL> alter session set max_dump_file_size=unlimited;

Session altered.

Elapsed: 00:00:00.01

14:27:18 SQL> alter session set db_file_multiblock_read_count=1;

Session altered.

Elapsed: 00:00:00.00

14:27:18 SQL> alter session set events 'immediate trace name trace_buffer_on level 1048576';

Session altered.

Elapsed: 00:00:00.00

14:27:18 SQL> alter session set events '10200 trace name context forever, level 1';

Session altered.

Elapsed: 00:00:00.00

14:27:18 SQL> select /*+ full(a) no_index(a) */ count(*) from crm.cust_order a;

ERROR at line 1:

ORA-01410: invalid ROWID

Elapsed: 00:05:50.82

14:33:09 SQL> 14:33:09 SQL> alter session set events 'immediate trace name trace_buffer_off';

Session altered.

在trace文件的最后,我们可以看到:

view plain copy to clipboard print ?

Consistent read started for block 10 : 2489c394

env: (scn: 0x0a0d.690ff414  xid: 0x0000.000.00000000  uba: 0x00000000.0000.00  statement num=0  parent xid: xid: 0x0000.000.000000

00  scn: 0x0000.00000000 0sch: scn: 0x0000.00000000)

这里只有”start“,而没有finish,表明在读2489c394这个块出了问题。

用ODU工具的rdba查看文件号和坏号:

ODU> rdba 2489c394

rdba   : 0x2489c394=613008276

rfile# : 146

block# : 639892

通过”alter sytem dump datafile 146 block 639892”命令发现块中的object_id与CUST_ORDER表的data object id不同,看起来这就是问题所在(此处不再列出数据)。

看起来有坏块了。不过这个库是个查询库,把表TRUNCATE之后重新从生产库同步过来,发现问题仍然存在,甚至把表DROP之后重建也是如此,均是发生在146/639892这个块上。

而TRUNCATE/DROP表都不能解决问题,显然这个块还在内存中,看起来需要刷新buffer cache了:

view plain copy to clipboard print ?

14:37:07 SQL> alter session set events 'immediate trace name flush_cache level 1';

Session altered.

刷新buffer cache后,问题解决。

总结:这个问题,与ORA-8103类似,都是出现了逻辑坏块,只不过这次的坏块是发生在内存中的块。至于坏块是怎么进入到内存中,为什么在重建表后还在内存中,这就是个谜了,或者是ORACLE的BUG,或者跟用的同步软件DSG有关。在这个案例中,块的object_id与段的实际的data object id不一致。而object_id不一致有时也会报ORA-600错误。

Oracle ora01410,一次ORA-01410故障的解决相关推荐

  1. 使用隐含Trace参数诊断Oracle Data Pump(expdp)故障

    使用隐含Trace参数诊断Oracle Data Pump(expdp)故障 Data Pump数据泵是Oracle从10g开始推出的,用于取代传统exp/imp工具的数据备份还原组件.经过若干版本的 ...

  2. oracle错误号大全(查询ora错误号以及解决方法技巧)

    oracle 查询ora错误号以及解决方法技巧 racle 错误号以及解决方法技巧 经常有朋友问我ORACLE 类似ora-00109 错误的信息,其实我们的ORACLE系统本身已经为我们详细的说明了 ...

  3. 资源放送丨《 Oracle RAC高并发系统的故障案例解析 - 2020云和恩墨大讲堂》PPT视频...

    前段时间,墨天轮分享了直播<Oracle RAC高并发系统的故障案例解析>,在这里我们共享一下PPT和视频,供大家参考学习. 本次分享主要是跟大家讲解 Oracle RAC 的一些重要等待 ...

  4. rono在oracle的作用_sqlnet.ora的作用

    sqlnet.ora的作用 1.限制客户端访问(如指定客户端域为不允许访问) 2.指定命名方法(local naming,directory nameing...)的优先级 3.启用日志及跟踪(log ...

  5. oracle bround,【案例】Oracle警告 WARNING:inbound connection timed out (ORA-3136)解决办法

    天萃荷净 运维DBA反映,巡检alert日志文件中发现大量Oracle日志警告WARNING: inbound connection timed out (ORA-3136) 1.alert日志文件警 ...

  6. oracle scott密码忘记,oracle忘记sys/system/scott用户密码的解决方法

    这篇文章主要为大家详细介绍了oracle忘记sys/system/scott用户密码的解决方法,具有一定的参考价值,可以用来参考一下. 感兴趣的小伙伴,下面一起跟随512笔记的小编两巴掌来看看吧! 一 ...

  7. oracle安装出现2932,【案例】Oracle报错ORA-19815 fast_recovery_area无剩余空间解决办法...

    天萃荷净 运维DBA反映数据库出现宕机,alert日志报错ORA-19815,分析原因为归档日志满导致日志无法归档,提出fast_recovery_area无剩余空间解决办法 一.打开数据库报错ORA ...

  8. oracle imp lrm 00101,LRM-00101: unknown parameter name解决办法

    LRM-00101: unknown parameter name解决方法! 点击右边红色标题查看本文完整版:LRM-00101: unknown parameter name解决方法! SQL> ...

  9. oracle 10grac搭建,搭建ORACLE 10g RAC过程中出现 OUI-25031 的解决办法

    OS 版本是:Enterprise Linux Enterprise Linux Server release5.4 DB版本是:Oracle Database 10g Enterprise Edit ...

  10. oracle netca 乱码,Oracle 11g 安装及netca,dbca乱码之解决

    在中文Linux下安装Oracle 11g,运行runInstaller后默认会出现乱码,解决办法如下: 1.准备字体zysong.ttf,解压下载到的fallback 2.使用归档管理器打开data ...

最新文章

  1. ldap 统一认证 java_如何在你的系统里集成LDAP统一认证
  2. IGBT的MATLAB仿真
  3. 开发指南专题九:JEECG微云快速开发平台-表单校验组件ValidForm
  4. oracle体系结构图
  5. Java下使用Apache POI生成具有三级联动下拉列表的Excel文档
  6. HAUT校赛--最大奇子段和
  7. 计算机关闭的时候自动更新,win7自动更新关闭有什么影响_win7系统关闭自动更新的步骤-win7之家...
  8. Asp.net页面之间传递参数的几种方法荟萃
  9. GTDer为何不再拖延了?
  10. 论文指导教师评语计算机,毕业论文指导教师评语
  11. 计算机专业搜题软件免费,QuestionHelper(pc搜题工具)
  12. 【简易设计模式07】适配器模式
  13. 计算机网络与通信之计算机网络体系结构
  14. TI CC1310 sub1G的SDK开发之入门
  15. vivo 官网资源包适配多场景的应用
  16. Google Pay接入
  17. G.7xx 音频压缩标准
  18. 正在准备面试?快手三面面试真题,搞懂这些直接来阿里入职
  19. 离线数仓搭建_14_DWT数据构建
  20. EXCEL如何设置,使表格能自动调整列宽以适应文字长度

热门文章

  1. 模拟ARP报文发送,通过改变拓扑结构,观察报文发送方法以及途径
  2. LeetCode问题7
  3. Linux命令解释之fdisk
  4. mysql 减去_MySql进阶面试题
  5. 程序员最常说的那些口头禅
  6. php 取oracle图片,一个php导出oracle库的php代码
  7. 我插计算机英语,帮我翻译以下计算机英语的句子
  8. HT for Web中3D流动效果的实现与应用
  9. 三维点云学习(3)1-聚类数学理论
  10. idea中编辑*.vue文件没有任何提示