SQL ORA-12801:在并行查询服务器 P004 和 ORA-01555 中发出错误信号:快照太旧

声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 原文地址: http://stackoverflow.com/questions/29579352/
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-01 03:31:04  来源:igfitidea点击:

ORA-12801: error signaled in parallel query server P004 and ORA-01555: snapshot too old

sqloracleoracle11goracle10g

提问by coderz

I am executing a insert into ... select ... from ... where ...SQL and got following error using Oracle:

我正在执行insert into ... select ... from ... where ...SQL 并使用以下错误Oracle

java.sql.SQLException: ORA-12801: error signaled in parallel query server P004
ORA-01555: snapshot too old: rollback segment number 32 with name "_SYSSMU32_2039035886$" too small

I read the following doc: http://www.dba-oracle.com/t_ora_12801_parallel_query.htmand http://www.dba-oracle.com/t_ora_01555_snapshot_old.htm

我阅读了以下文档:http: //www.dba-oracle.com/t_ora_12801_parallel_query.htmhttp://www.dba-oracle.com/t_ora_01555_snapshot_old.htm

Saying ORA-12801is caused by no enough processors to support parallel query. ORA-01555error relates to insufficient undo storage or a too small value for the undo_retention parameter.

ORA-12801是因为没有足够的处理器来支持并行查询。ORA-01555错误与撤消存储不足或 undo_retention 参数的值太小有关。

But how can I check related parameters to avoid such issue recur?

但是如何检查相关参数以避免此类问题再次发生?

回答by Jon Heller

From the manual:

手册

ORA-12801:error signaled in parallel query server string

Cause:A parallel query server reached an exception condition.

Action:Check the following error message for the cause, and consult your error manual for the appropriate action.

ORA-12801:在并行查询服务器字符串中发出错误信号

原因:并行查询服务器达到异常条件。

措施:检查以下错误消息的原因,并查阅您的错误手册以采取适当的措施。

This is a generic error message and almost never has anything to do with not enough processors. This is an example of how the site you linked to often contains lots of bad or outdated information. Maybe 17 processes was "a lot" 17 years ago, but it's not today. Unfortunately, that site is often the first result from Google.

这是一条通用错误消息,几乎与处理器不足无关。这是一个示例,说明您链接到的站点如何经常包含大量不良或过时的信息。也许 17 个进程在 17 年前“很多”,但今天不是。不幸的是,该网站通常是 Google 的第一个结果。



You can check the UNDO retention, which is the amount of time in seconds, like this:

您可以检查 UNDO 保留时间,即以秒为单位的时间量,如下所示:

select value from v$parameter where name = 'undo_retention'

The amount of space available for the UNDO tablespace is also relevant:

可用于 UNDO 表空间的空间量也与此相关:

select round(sum(maxbytes)/1024/1024/1024) gb
from dba_data_files
where tablespace_name like '%UNDO%';

Once again, see the manualfor more information on the parameter.

再一次,请参阅手册以获取有关该参数的更多信息。