oracle ORA-07445 访问冲突

声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 原文地址: http://stackoverflow.com/questions/3347305/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me): StackOverFlow

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-09-18 21:07:35  来源:igfitidea点击:

ORA-07445 access violation

sqloracleoracle10gora-03113

提问by Luci

I have this error when running a large query on oracle. any advice? I'm using pl sql version 10.2

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

I have noticed that the error is due to creating a view that is based up on many tables, and when I do a select from this view to a specific parameter with a where condition I got that error. When I checked the logs I found out this

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

ora 07445 access violation

ora 07445 访问冲突

So it is due to something on the view. I have full rights on the tables that I'm creating the views from. And I'm not using any network, the database is on my machine.

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

Thanks.

谢谢。

回答by Brian

This is usually when something is killed at the database server OS level. But it is a fairly generic error. But in my specific world, I'll see this in an application server log on machine A if the database server on machine B is shutdown. In your case, your desktop is losing communication with your DBMS. Your 'large query' may be getting killed at the process level if some administrator or automated process is identifying your query as a resource hog (i.e. you have a Cartesian product).

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

To be clear this is very likely something your doing wrong as the client and not a bug with your server or Oracle itself.

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

UPDATEsince you provided additional details. Since the db is running on your machine I would bet that your query is encountering a lack of RAM to support both client and server operations.

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

回答by Adam Musch

From the useful oerrcommand:

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

So the likeliest causes:

所以最可能的原因:

  1. The server process you were connected to crashed.
  2. A network problem broke your connection.
  3. Someone manually killed the process on the server you were connected to.
  1. 您连接的服务器进程崩溃了。
  2. 网络问题中断了您的连接。
  3. 有人手动终止了您连接的服务器上的进程。

When the server process you were connected to crashed, it threw an ORA-07445. That error, along with ORA-00600, are relatively famous Oracle errors. They're functionally unhandled exceptions, with an ORA-00600 being an unhandled exception in the Oracle code, whereas ORA-07445 is a fatal signal from the OS, generally because Oracle did something that the OS didn't approve of, so the OS killed the Oracle process.

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

Oracle's support site (http://metalink.oracle.com) has an online troubleshooter for these errors -- search within metalink for document 600.1, and enter the appropriate information from the log file and you might receive some useful troubleshooting information.

Oracle 的支持站点 ( http://metalink.oracle.com) 有一个针对这些错误的在线故障排除程序 —— 在 metalink 中搜索文档 600.1,然后输入日志文件中的相应信息,您可能会收到一些有用的故障排除信息。