ORA-00600: internal error code, arguments: [4042], [136]

在尝试创建表时遇到Oracle内部错误00600,通过部分删除无用对象后问题得到解决。文章记录了错误详情及追踪日志,探讨可能的原因。
linux as 4
oracle 9.2.0.4.0
SQL> create table scott.test(tid varchar2(10));
create table scott.test(tid varchar2(10))
*
ERROR at line 1:
ORA-00600: internal error code, arguments: [4042], [136], [], [], [], [], [],
[]
创建任何对象都出错!
部分跟踪日志:
*** SESSION ID2.gif75.19119) 2008-11-19 11:14:02.090
*** 2008-11-19 11:14:02.090
ksedmp: internal or fatal error
ORA-00600: internal error code, arguments: [4042], [136], [], [], [], [], [], []
Current SQL statement for this session:
insert into col$(obj#,name,intcol#,segcol#,type#,length,precision#,scale,null$,offset,fixedstorage,segcollength,deflength,default$,col#,property,charsetid,charsetform,spare1,spare2,spare3)values(:1,:2,:3,:4,:5,:6,decode(:7,0,null,:7),decode(:5,2,decode(:8,-127/*MAXSB1MINAL*/,null,:8),178,:8,179,:8,180,:8,181,:8,182,:8,183,:8,231,:8,null),:9,0,:10,:11,decode(:12,0,null,:12),:13,:14,:15,:16,:17,:18,:19,:20)
----- Call Stack Trace -----
calling              call     entry                argument values in hex      
location             type     point                (? means dubious value)     
-------------------- -------- -------------------- ----------------------------
ksedmp()+269         call     ksedst()+0           0 ? 0 ? 0 ? 0 ? BFFF6A6C ?
                                                   A16D886 ?
ksfdmp()+14          call     ksedmp()+0           3 ? BFFF6B78 ? 98585B4 ?
                                                   AD58FA0 ? 3 ? A4B929C ?
kgeriv()+188         call     ksfdmp()+0           AD58FA0 ? 3 ?
kgeasi()+108         call     kgeriv()+0           AD58FA0 ? ADB286C ? FCA ? 1 ?
                                                   BFFF6BB4 ?
ktugusc()+787        call     kgeasi()+0           AD58FA0 ? ADB286C ? FCA ? 2 ?
                                                   1 ? 4 ? 88 ?
ktugti()+359         call     ktugusc()+0          BFFF6C1C ? 12 ? 1 ? 0 ? 0 ?
                                                   0 ? 0 ? 0 ?
ktsftcmove()+430     call     ktugti()+0           5AAAD658 ? BFFF6DD8 ?
                                                   BFFF6DD4 ? 0 ? BFFF6DD0 ?
原本以为system表空间有坏块,dbv后没发现
现在发现创建任何对象都会报这个错
这个db数据对象超多,现在删除部分没用的对象恢复正常(难道一个用户下对象数有限制),请教原因?

[ 本帖最后由 microsoft_fly 于 2008-11-20 09:21 编辑 ]

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/751051/viewspace-731735/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/751051/viewspace-731735/

### ORA-00600错误代码参数为-4019的解决方案 ORA-00600Oracle数据库中的一种内部错误,通常表示数据库遇到了一个不可预期的情况。当参数为`-4019`时,该错误可能与索引块损坏或索引结构不一致相关[^1]。以下是关于ORA-00600 internal error code arguments -4019的具体分析和解决方案: #### 1. 错误原因 ORA-00600 [-4019]通常发生在对索引进行操作时,例如插入、更新或删除数据。这种错误可能是由于以下原因之一引起的: - 索引块损坏。 - 索引结构不一致。 - 数据库文件(如数据文件或重做日志文件)存在物理损坏。 - 使用了隐藏参数或不当的数据库恢复方法。 #### 2. 解决方案 以下是针对ORA-00600 [-4019]的常见解决步骤: ##### 2.1 检查告警日志和跟踪文件 首先需要检查数据库的告警日志和相关的跟踪文件,以获取更多关于错误的详细信息。这些文件通常位于`$ORACLE_BASE/diag/rdbms/<dbname>/<instance>/trace/`目录下。通过分析这些文件,可以确定具体的索引对象及其相关问题[^3]。 ##### 2.2 验证索引完整性 使用`ANALYZE INDEX`命令验证受影响的索引是否存在逻辑损坏: ```sql ANALYZE INDEX <index_name> VALIDATE STRUCTURE; ``` 如果发现索引损坏,可以通过重建索引来修复问题: ```sql ALTER INDEX <index_name> REBUILD; ``` ##### 2.3 检查数据文件一致性 如果索引重建无法解决问题,可能需要进一步检查数据文件的一致性。可以使用`DBVERIFY`工具验证数据文件的物理和逻辑结构: ```bash dbv file=<datafile_path> blocksize=<block_size> ``` ##### 2.4 恢复受影响的对象 如果上述方法无效,可以尝试从备份中恢复受影响的表空间或数据文件。在恢复之前,请确保已启用归档模式并备份了所有必要的归档日志。 ##### 2.5 联系Oracle支持 如果以上方法均无法解决问题,建议收集相关诊断信息(如告警日志、跟踪文件等),并联系Oracle官方支持以获取进一步帮助。 #### 3. 示例代码 以下是一个示例脚本,用于验证和重建索引: ```sql -- 验证索引结构 ANALYZE INDEX my_index VALIDATE STRUCTURE; -- 如果发现损坏,重建索引 ALTER INDEX my_index REBUILD; ``` --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值