ORA-07445访问冲突

时间:2010-07-27 19:41:39

标签: sql oracle oracle10g ora-03113

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

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

  

ora 07445访问冲突

所以这是由于视图中的某些内容。我对我正在创建视图的表拥有完全的权限。我没有使用任何网络,数据库在我的机器上。

感谢。

2 个答案:

答案 0 :(得分:2)

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

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

更新,因为您提供了其他详细信息。由于数据库正在您的计算机上运行,​​我敢打赌您的查询遇到缺少RAM以支持客户端和服务器操作。

答案 1 :(得分:2)

从有用的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.

所以最有可能的原因是:

  1. 您已连接到崩溃的服务器进程。
  2. 网络问题破坏了您的连接。
  3. 有人在您连接的服务器上手动终止了该进程。
  4. 当服务器进程连接到崩溃时,它会抛出一个ORA-07445。该错误以及ORA-00600是相对着名的Oracle错误。它们是功能上未处理的异常,ORA-00600是Oracle代码中未处理的异常,而ORA-07445是来自操作系统的致命信号,通常是因为Oracle做了操作系统不赞同的操作,因此操作系统杀死了Oracle进程。

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