ORA-00600: internal error code, arguments: [qerpfAllocateR], [], [], [], [], [], [], []

本文介绍了如何解决Oracle数据库中出现的ORA-600[qerpfAllocateR]错误,该错误与使用带有ROWNUM谓词的并行查询有关。提供了两个解决方法:一是禁用并行查询;二是通过设置会话参数来禁用ROWNUM下推。此问题已在11g和10.2.0.4版本中修复。

开发人员遇到如题错误,数据库版本是10.2.0.2,在metalink查找到相关bug,Bug 5742801 : ORA-600 [QERPFALLOCATER]

相关文章如下:

Query fails with ora-600 as reported in alert.log.

ORA-00600: internal error code, arguments: [qerpfAllocateR], [], [], [], [], [], [], []

The error stack functions are:

ksedst ksedmp ksfdmp kgerinv kgeasnmierr qerpfAllocate qknRwsAllocateTree qknRwsAllocateTree qknRwsAllocateTree qknRwsAllocateTree qknRwsAllocateTree qknRwsAllocateTree qknRwsAllocateTree qknRwsAllocateTree qknRwsAllocateTree qknRwsAllocateTree  qknRwsAllocateTree qknRwsAllocateTree qknDoRwsAllocate qkaTraverseQkn qkadrv2Post qkadrv2 opitca kksFullTypeCheck rpiswu2 kksSetBindType kksfbc opiexe opipls opiodr rpidrus skgmstack rpidru rpiswu2 rpidrv psddr0 psdnal pevm_EXECC pfrinstr_EXECC pfrrun_no_tool pfrrun plsql_run peicnt kkxexe opiexe kpoal8 opiodr ttcpip opitsk opiino opiodr opidrv sou2o opimai_real main libc_start_main start 



.

CHANGES

None. 
CAUSE

Bug 5742801 ORA600 ERROR --> INTERNAL ERROR CODE, ARGUMENTS: [QERPFALLOCATER]

Duplicate of

Bug 4407269 Wrong result with nested loop parallel query with ROWNUM pushdown
Fixed In Ver: 11.1.0.6 & 10.2.0.4
Details: 
Wrong results can occur when using a parallel query which includes a ROWNUM predicate with nested loops and table lookup row sources. 
Workaround: 
Disable rownum pushdown. 
or 
Execute the query serially.
SOLUTION

A).

Workarounds: 
 
1.alter session disable parallel query; 
-- Run the failing query.-- 

2.alter session set "_px_rownum_pd"=false; 
-- Run the failing query.--

B).

This is fixed in 11g and 10.2.0.4 patchset.

However, for some of the database versions and platforms a one off patch is available. To check and download:

1. Go to My Oracle Support
2. On top left hand side under Quick Find from the drop down list choose "Patch Number" and
provide the patch number as 4407269 in the box below it. Click go.
3. In the following page, choose your database version - 10.x.x.x  and your platform - xxxxx  and download the patch.

Please follow the readme.txt for instruction on how to apply the patch.
没有相关补丁,给了workaround,禁掉并发即可。



### 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、付费专栏及课程。

余额充值