ORA-07445 访问冲突

Posted

技术标签:

【中文标题】ORA-07445 访问冲突【英文标题】:ORA-07445 access violation 【发布时间】:2010-07-27 19:41:39 【问题描述】:

在 oracle 上运行大型查询时出现此错误。有什么建议吗? 我正在使用 pl sql 版本 10.2

我注意到该错误是由于创建了一个基于许多表的视图,当我从该视图中选择具有 where 条件的特定参数时,我得到了该错误。当我检查日志时,我发现了这个

ora 07445 访问冲突

所以这是由于视图上的某些东西。我对从中创建视图的表拥有完全的权利。而且我没有使用任何网络,数据库在我的机器上。

谢谢。

【问题讨论】:

我正在使用 oracle plsql 并在 vista 上遇到问题。 【参考方案1】:

来自有用的oerr 命令:

$ oerr ora 3113
03113, 00000, "end-of-file on communication channel"
// *Cause: The connection between Client and Server process was broken.
// *Action: There was a communication error that requires further investigation.
//          First, check for network problems and review the SQL*Net setup.
//          Also, look in the alert.log file for any errors. Finally, test to
//          see whether the server process is dead and whether a trace file
//          was generated at failure time.

所以最可能的原因:

    您连接的服务器进程崩溃了。 网络问题中断了您的连接。 有人手动杀死了您连接的服务器上的进程。

当您连接的服务器进程崩溃时,它会抛出 ORA-07445。该错误以及 ORA-00600 是相对著名的 Oracle 错误。它们是功能上未处理的异常,ORA-00600 是 Oracle 代码中的未处理异常,而 ORA-07445 是来自操作系统的致命信号,通常是因为 Oracle 做了操作系统不同意的事情,所以操作系统杀死了Oracle进程。

Oracle 的支持站点 (http://metalink.oracle.com) 有针对这些错误的在线疑难解答程序 - 在 metalink 中搜索文档 600.1,并从日志文件中输入适当的信息,您可能会收到一些有用的疑难解答信息。

【讨论】:

【参考方案2】:

这通常是在数据库服务器操作系统级别被杀死时。但这是一个相当普遍的错误。但是在我的特定世界中,如果机器 B 上的数据库服务器关闭,我将在机器 A 上的应用程序服务器日志中看到这一点。在您的情况下,您的桌面正在失去与 DBMS 的通信。如果某些管理员或自动化进程将您的查询识别为资源占用(即您有笛卡尔积),您的“大型查询”可能会在进程级别被终止。

需要明确的是,这很可能是您作为客户端的错误,而不是您的服务器或 Oracle 本身的错误。

更新,因为您提供了更多详细信息。由于数据库正在您的机器上运行,我敢打赌您的查询遇到了内存不足来支持客户端和服务器操作。

【讨论】:

以上是关于ORA-07445 访问冲突的主要内容,如果未能解决你的问题,请参考以下文章

11.2.0.1bug引发的报错:ORA-07445: exception encountered

11.2.0.1bug引发的报错:ORA-07445: exception encountered

ORA-07445: 出现异常错误: 核心转储 [kupfuDecompress()+2279]

ORA-07445: 出现异常错误: 核心转储 [kupfuDecompress()+2279]

数据库坏块触发ora-00600和ora-07445

ORA-07445: exception encountered: core dump [kglpin()+527]