Oracle 简单更新脚本导致“ORA-00600:内部错误代码,参数:[15851]、[6]、[6]、[1]、[2]、[]、[]、[]”
Posted
技术标签:
【中文标题】Oracle 简单更新脚本导致“ORA-00600:内部错误代码,参数:[15851]、[6]、[6]、[1]、[2]、[]、[]、[]”【英文标题】:Oracle simple update script causes "ORA-00600: internal error code, arguments: [15851], [6], [6], [1], [2], [], [], []" 【发布时间】:2019-11-06 11:49:14 【问题描述】:我有以下查询,多年来一直成功。
UPDATE t_fleet_net_exposure ne
SET avlimit = (SELECT avlimit FROM V_GROUP_CRLIM WHERE ca_id = ne.ca_id)
WHERE ne.ca_id IN (SELECT ca_id FROM V_GROUP_CRLIM);
此查询位于存储过程中,由 Oracle 作业每 10 分钟触发一次。但是最近这项工作失败了,我发现这个更新查询导致错误并且无法正常工作。
这是我在 Toad 上手动执行脚本后的错误:
ORA-00600:内部错误代码,参数:[15851]、[6]、[6]、[1]、 [2],[],[],[]
当我用谷歌搜索时,我找不到任何合适的理由。人们说这是 Oracle 的内部异常,我必须向 Oracle Corporation 开一个 TAR。但我想知道是否有人遇到了这个错误,并且可以在不向 Oracle 提交 TAR 的情况下提出解决方案。
这是我已经尝试过的步骤:
-
我创建了另一个表“t_fleet_net_exposure2”并填充了来自 t_fleet_net_exposure 的数据。我想,也许表的数据已损坏。但是更新查询再次导致 ORA-600。
我从查询中创建了另一个视图“V_GROUP_CRLIM2”并替换为“V_GROUP_CRLIM”。也许视图本身有问题。但是更新查询再次以 ORA-600 结束。
我创建了一个临时表“TMP_V_GROUP_CRLIM”并填充了 V_GROUP_CRLIM 的结果。表和数据创建没有任何问题。所以观点没有错。
我用更新查询中新创建的 TMP_V_GROUP_CRLIM 表替换了视图 V_GROUP_CRLIM,然后更新查询工作正常。这是一个可以接受的解决方法,但现在我必须在每次需要执行更新查询时截断并重新填充表。所以我仍然需要一个适当的理由/行动来摆脱 ORA-600 错误。
我的 oracle 服务器的版本:
Oracle 数据库 10g 版本 10.2.0.4.0 - 64 位生产 PL/SQL 版本 10.2.0.4.0 - 生产核心 10.2.0.4.0 用于 64 位 Windows 的生产 TNS:版本 10.2.0.4.0 - 生产 NLSRTL 版本 10.2.0.4.0 - 生产
提前致谢
【问题讨论】:
这些东西取决于确切的版本(+补丁)、实例参数,有时甚至是你运行的操作系统。除非您想尝试一些伏都教解决方案,否则请联系 Oracle 支持。 (不过他们可能会告诉你升级。) 您的核心问题可能与 hash_area_size 有关。为当前会话提供alter session set hash_area_size = 1073741824
的解决方法(在本例中为 1GB 作为样本大小,根据您的内存大小进行更改)。
增加哈希区域大小没有帮助,但还是谢谢!
不客气哈坎贝。版本 10 很老了,至少应该首选 11。我认为您的系统是RAC。我们在 RAC 中也遇到了这些奇怪的问题。顺便说一句,很高兴看到在 Başarsoft 工作,我以前有来自 ASKi(安卡拉)的朋友。
谢谢巴巴罗斯贝,很高兴听到这个消息!
【参考方案1】:
ORA-600 基本上是一个错误,即程序崩溃了,因此我们退出了。
在你的情况下,试试这个:
alter session set "_complex_view_merging" = false;
看看能不能解决你的问题。
这里真正的解决方案 - 升级到受支持的数据库版本:-)
【讨论】:
将“_complex_view_merging”设置为“false”已经解决了这个问题。将此值保持为“false”有什么缺点? 随着 Oracle 的每个版本,优化器得到了更多的增强,以便提出更好地运行查询的新方法。复杂的视图合并允许这样做,但是你遇到了一个错误。您不需要在系统范围内设置它,或者您甚至可以仅使用该特定语句的 NO_QUERY_TRANSFORMATION 提示进行探索以上是关于Oracle 简单更新脚本导致“ORA-00600:内部错误代码,参数:[15851]、[6]、[6]、[1]、[2]、[]、[]、[]”的主要内容,如果未能解决你的问题,请参考以下文章
在 Oracle 11g2 XE 中编译 PL/SQL 函数有时会导致 ORA-00600:内部错误
求教ORACLE的问题,我用的是ORACLE 9I,出现一个ORA-00600:内部错误代码,参数:[qernsRowP],[1],[]....
ORA-00600: 内部错误代码,参数:[5213],[][][][],oracle 8