ORA-08102异常重现及恢复
现象:
SQL> alter table t add primary key(id);alter table t add primary key(id)*ERROR at line 1:ORA-00604: error occurred at recursive SQL level 1ORA-08102: index key not found, obj# 52, file 1, block 72661 (2)
重现异常:
SQL> SELECT OWNER#,NAME,CON# FROM CON$ WHERE NAME='_NEXT_CONSTRAINT';OWNER# NAME CON#---------- ------------------------------ ----------0 _NEXT_CONSTRAINT 11222
SQL> set lines 200SELECT OWNER#,NAME,CON#,dbms_rowid.ROWID_RELATIVE_FNO(rowid) fno,dbms_rowid.ROWID_BLOCK_NUMBER(rowid) bno,dbms_rowid.ROWID_ROW_NUMBER(rowid) rno FROM CON$ WHERE NAME='_NEXT_CONSTRAINT';OWNER# NAME CON# FNO BNO RNO---------- ------------------------------ ---------- ---------- ---------- ----------0 _NEXT_CONSTRAINT 11222 1 289 12
[oracle@cqfrog bbed]$ bbed parfile=par.txtBBED> set file 1 block 289FILE# 1BLOCK# 289
- BBED> p *kdbr[12]
rowdata[0]----------ub1 rowdata[0] @1207 0x2c
- BBED> x /rccnn
rowdata[0] @1207----------flag@1207: 0x2c (KDRHFL, KDRHFF, KDRHFH)lock@1208: 0x02cols@1209: 4col 0[1] @1210: .col 1[16] @1212: _NEXT_CONSTRAINTcol 2[4] @1229: 11222col 3[1] @1234: 0
BBED> dump /v offset 1229 count 16File: /u01/app/oracle/oradata/orcl/system01.dbf (1)Block: 289 Offsets: 1229 to 1244 Dba:0x00400121-------------------------------------------------------04c3020d 1701802c 00040180 105f4e45 l .......,....._NE<16 bytes per line>
SQL> select dump(11222, 16) from dual;DUMP(11222,16)----------------------Typ=2 Len=4: c3,2,d,17
SQL> shutdown immediateDatabase closed.Database dismounted.ORACLE instance shut down.SQL> exitDisconnected from Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit ProductionWith the Partitioning, OLAP, Data Mining and Real Application Testing options
BBED> dump /v offset +4File: /u01/app/oracle/oradata/orcl/system01.dbf (1)Block: 289 Offsets: 1233 to 1248 Dba:0x00400121-------------------------------------------------------1701802c 00040180 105f4e45 58545f43 l ...,....._NEXT_C<16 bytes per line>
BBED> modify /x 1901802cFile: /u01/app/oracle/oradata/orcl/system01.dbf (1)Block: 289 Offsets: 1233 to 1248 Dba:0x00400121------------------------------------------------------------------------1901802c 00040180 105f4e45 58545f43<32 bytes per line>BBED> sum applyCheck value for File 1, Block 289:current = 0x7fca, required = 0x7fcaBBED> dump /v offset 1233File: /u01/app/oracle/oradata/orcl/system01.dbf (1)Block: 289 Offsets: 1233 to 1248 Dba:0x00400121-------------------------------------------------------1901802c 00040180 105f4e45 58545f43 l ...,....._NEXT_C<16 bytes per line>
SQL> startupORACLE instance started.Total System Global Area 835104768 bytesFixed Size 2217952 bytesVariable Size 549455904 bytesDatabase Buffers 276824064 bytesRedo Buffers 6606848 bytesDatabase mounted.Database opened.
SQL> select /*+ FULL(t1) */ name,con# from con$ t1 where name='_NEXT_CONSTRAINT';NAME CON#------------------------------ ----------_NEXT_CONSTRAINT 11224
SQL> select /*+ index(t1 I_CON2) */ name,con# from con$ t1 where name='_NEXT_CONSTRAINT';NAME CON#------------------------------ ----------_NEXT_CONSTRAINT 11222
SQL> create table t as select * from test where rownum<10;Table created.SQL> desc t;Name Null? Type----------------------------------------- -------- ----------------------------ID NUMBERNAME VARCHAR2(128
SQL> alter table t add primary key(id);alter table t add primary key(id)*ERROR at line 1:ORA-00604: error occurred at recursive SQL level 1ORA-08102: index key not found, obj# 52, file 1, block 72661 (2)
修复ORA-08102异常:
SQL> alter table t add primary key(id);alter table t add primary key(id)*ERROR at line 1:ORA-00604: error occurred at recursive SQL level 1ORA-08102: index key not found, obj# 52, file 1, block 72661 (2)
SQL> select /*+ FULL(t1) */ name,con# from con$ t1 where name='_NEXT_CONSTRAINT';NAME CON#------------------------------ ----------_NEXT_CONSTRAINT 11224SQL> select /*+ index(t1 I_CON2) */ name,con# from con$ t1 where name='_NEXT_CONSTRAINT';NAME CON#------------------------------ ----------_NEXT_CONSTRAINT 11222
SQL> alter system dump datafile 1 block 72661;System altered.SQL> select * from v$diag_info;1 Default Trace File /u01/app/oracle/diag/rdbms/orcl/orcl/trace/orcl_ora_6051.trc
SQL> select UTL_RAW.CAST_TO_NUMBER(replace('c3 02 0d 19',' ','')) from dual;UTL_RAW.CAST_TO_NUMBER(REPLACE('C3020D19','',''))-------------------------------------------------11224
row#198[3566] flag: ---D--, lock: 2, len=13, data:(6): 00 41 38 6c 00 adcol 0; len 4; (4): c3 02 0d 15row#199[3540] flag: ---D--, lock: 2, len=13, data:(6): 00 41 38 6c 00 afcol 0; len 4; (4): c3 02 0d 16row#200[3553] flag: ------, lock: 0, len=13, data:(6): 00 40 01 21 00 0ccol 0; len 4; (4): c3 02 0d 17----- end of leaf block dump -----End dump data blocks tsn: 0 file#: 1 minblk 72661 maxblk 72661
SQL> select UTL_RAW.CAST_TO_NUMBER(replace('c3 02 0d 17',' ','')) from dual;UTL_RAW.CAST_TO_NUMBER(REPLACE('C3020D17','',''))-------------------------------------------------11222
BBED> set file 1 block 72661;FILE# 1BLOCK# 72661
BBED> dump offset 3677 count 16File: /u01/app/oracle/oradata/orcl/system01.dbf (1)Block: 72661 Offsets: 3677 to 3692 Dba:0x00411bd5------------------------------------------------------------------------04c3020d 17010200 41386c00 ad04c302
BBED> modify /x 19 offset 3681File: /u01/app/oracle/oradata/orcl/system01.dbf (1)Block: 72661 Offsets: 3681 to 3696 Dba:0x00411bd5------------------------------------------------------------------------19010200 41386c00 ad04c302 0d150100<32 bytes per line>BBED> sum applyCheck value for File 1, Block 72661:current = 0x1fa3, required = 0x1fa3BBED> dump offset 3677 count 16File: /u01/app/oracle/oradata/orcl/system01.dbf (1)Block: 72661 Offsets: 3677 to 3692 Dba:0x00411bd5------------------------------------------------------------------------04c3020d 19010200 41386c00 ad04c302<32 bytes per line>
SQL> select /*+ FULL(t1) */ name,con# from con$ t1 where name='_NEXT_CONSTRAINT';NAME CON#------------------------------ ----------_NEXT_CONSTRAINT 11224SQL> select /*+ index(t1 I_CON2) */ name,con# from con$ t1 where name='_NEXT_CONSTRAINT';NAME CON#------------------------------ ----------_NEXT_CONSTRAINT 11224
SQL> alter table t add primary key(id);Table altered.
ORA-08102异常重现及恢复的更多相关文章
- Go语言 异常panic和恢复recover用法
Go语言 异常panic和恢复recover用法 背景:Go语言追求简洁优雅,所以,Go语言不支持传统的 try…catch…finally 这种异常,因为Go语言的设计者们认为,将异常与控制结构混在 ...
- mysql主从同步异常原因及恢复
mysql主从同步异常原因及恢复 前言 mysql数据库做主从复制,不仅可以为数据库的数据做实时备份,保证数据的完整性,还能做为读写分离,提升数据库的整体性能.但是,mysql主从复制经常会因为某些原 ...
- 【3】JVM-OutOfMemory异常重现
JVM中常见的OOM,那么如何通过自己编写代码产生这些OOM异常呢?通过写代码重现异常,是为了避免在工作中写出有OOM BUG的代码.之前虽然看过相关文章,但是没自己写过这些代码,这次在编写的实际过程 ...
- 通过NBU还原数据库提示LINKING异常,无法恢复数据
错误提示: 解决方法:
- Java中的受检异常
Java中的受检异常 Java提供了三种异常类型,受检异常(checked exception).运行时异常(runtime exception).错误(error).那么这受检异常在实际开发中又有什 ...
- SQL Server数据库的三种恢复模式:简单恢复模式、完整恢复模式和大容量日志恢复模式(转载)
SQL Server数据库有三种恢复模式:简单恢复模式.完整恢复模式和大容量日志恢复模式: 1.Simple 简单恢复模式, Simple模式的旧称叫”Checkpoint with truncate ...
- [Effective Java]第九章 异常
声明:原创作品,转载时请注明文章来自SAP师太技术博客( 博/客/园www.cnblogs.com):www.cnblogs.com/jiangzhengjun,并以超链接形式标明文章原始出处,否则将 ...
- Win32环境下的程序崩溃异常定位
1 案例描述 作为Windows程序员,平时最担心见到的事情可能就是程序发生了崩溃(异常),这时Windows会提示该程序执行了非法操作,即将关闭.请与您的供应商联系.呵呵,这句微软的“名 ...
- 云计算之路-阿里云上:3个manager节点异常造成 docker swarm 集群宕机
今天 11:29 - 11:39 左右,docker swarm 集群 3 个 manager 节点同时出现异常,造成整个集群宕机,由此给您带来很大的麻烦,请您谅解. 受此次故障影响的站点有:博问,闪 ...
随机推荐
- Linux expect 介绍和用法
expect是一个自动化交互套件,主要应用于执行命令和程序时,系统以交互形式要求输入指定字符串,实现交互通信. expect自动交互流程: spawn启动指定进程---expect获取指定关键字--- ...
- 谷歌移动UI框架Flutter教程之Widget
引言 在之间我已经介绍了关于Flutter的下载安装以及配置,还有开发工具Android Studio的配置,还不知道的同学可以看看我这篇博客--谷歌移动UI框架Flutter入门.这里为什么非要用A ...
- Java中synchronized关键字你知道多少
1.什么是synchronized 我们将其理解为同步锁,可以实现共享资源的同步访问,解决线程并发的安全问题.synchronize翻译成中文:同步,使同步.synchronized:已同步. 1.1 ...
- 【原创】Linux cpuidle framework
背景 Read the fucking source code! --By 鲁迅 A picture is worth a thousand words. --By 高尔基 说明: Kernel版本: ...
- JS高级(摘自简书)
JS高级 1. 访问对象属性(方法也是属性)的通用方式:obj['属性名'] 1. 属性名包含特殊字符,如"-".空格,访问:obj['content-type'] 2. 属性名不 ...
- codeforces 1041 E. Tree Reconstruction 和度数有关的构造树
CF 1041E:http://codeforces.com/contest/1041/problem/E 题意: 告诉你一个树的节点个数,显然有n-1条边.已知去掉一条边后,两个集合中最大的节点值. ...
- POJ-1062 昂贵的聘礼 (最短路)
POJ-1062 昂贵的聘礼:http://poj.org/problem?id=1062 题意: 有一个人要到1号点花费最少的钱,他可以花费一号点对应的价格,也可以先买下其他一些点,使得费用降低. ...
- lightoj 1111 - Best Picnic Ever(dfs or bfs)
题目链接 http://www.lightoj.com/volume_showproblem.php?problem=1111 题意:给你一个有向图再给你几个人的位置,问所有人可以在哪些点相聚. 简单 ...
- Redis哨兵(Sentinel)模式快速入门
更多内容,欢迎关注微信公众号:全菜工程师小辉.公众号回复关键词,领取免费学习资料. 当主服务器宕机后,需要手动把一台从服务器切换为主服务器,这就需要人工干预,费事费力,还会造成一段时间内服务不可用. ...
- Flask大型项目框架结构理解
导语:前段时间学习狗书的flask大型项目框架结构的时候有点混乱,到现在也知道是个啥了,想着,把关系理一理,写一篇博客.也方便后来学习的人查阅.以下是我创建项目时候的结构. myproject --- ...