ORA-00600:[KTRGCM_3]
适用于:
甲骨文公司服务器-企业版-版本:9.0.1.4到10.2.0.3 - 版本:9.0.1至10.2。本文档中的信息适用于任何平台。
原因:在警告日志中所提及到的以下错误导致相关SQL语句失败。
ORA-00600:内部错误代码,参数:[ktrgcm_3]
变化:
设置以下参数:
_row_cr = TRUE
解决方案:
Set "_row_cr" = FALSE
“_row_cr” 是一个隐藏的参数用于控制CR请求和缓冲区等待远程撤销段,是一种RAC实例中常见的问题。
特别是在与Oracle应用,全局高速缓存请求等待和缓冲等待远程实例所拥有的回滚段段头,可以成为一个整体的等待时间的重要组成部分。参考视图V $ CR_BLOCK_SERVER查阅(请参阅第II部分,第3.4 章节V $ CR_BLOCK_SERVER)确认。
CR请求和缓冲区等待在这里可以在下列情况下发生:
1. 实例修改模块。
2. 实例B查询模块。
这将导致一个请求产生一个当前模块的CR版本,它可以是在本地缓存或远程缓存,例如实例A。
如果远程实例的LMS将尝试生成的CR模块地方时,前台进程实例B上执行的查询将执行的CR模块生成。
在任何情况下,无论是实例需要读表和撤消模块从回滚段中引用的活跃在该区模块。
这种清洗/回滚过程可能会导致本地和远程的几个查找撤消头和撤消模块。
远程撤消头和撤消模块查找,将导致在一个全面的CR请求。由于撤消头经常访问的,缓冲区等待也可能发生。
等待事件将gc缓存忙,使用自动撤销区段可以加剧了性能问题,因为对于每一笔业务,我们将使用一个不同的撤销部分。
意见与V $ SESSION_WAIT或V $ SESSION_WAIT_HISTORY协助确定回滚段,只是在寻找列P1和P2,这表示文件ID和模块ID。
RowCR现在启用和10.2的支持。 RowCR部分可以通过简单的尝试产生一个请求行的CR版本减少全面模块清洗/回滚问题的开销。
请注意,rowcr(_row_cr =True)不支持在oracle之前的版本中释放。