How to Determine the Value Of UNDO_RETENTION Parameter to Avoid ORA-1555 (Doc ID 822411.1)

APPLIES TO:

Oracle Database - Enterprise Edition - Version 10.2.0.3 and later
Oracle Database Cloud Schema Service - Version N/A and later
Oracle Database Exadata Cloud Machine - Version N/A and later
Oracle Cloud Infrastructure - Database Service - Version N/A and later
Oracle Database Backup Service - Version N/A and later
Information in this document applies to any platform.
***Checked for relevance on 21-Jul-2017***

SYMPTOMS

The objective of this note  is to explain how to set UNDO_RETENTION parameter and to clarify how the error ORA-1555 could be generated due to wrong setting of UNDO_RETENTION parameter value.

本文的目的是解释如何设置UNDO_RETENTION参数,并阐明由于错误设置UNDO_RETENTION参数值而导致如何生成错误ORA-1555

CAUSE

undo_retention sizing  undo_retention大小调整

SOLUTION

You need to tune to increase to an optimum value the UNDO_RETENTION parameter.  您需要调整以将UNDO_RETENTION参数增加到最佳值
The value for this parameter is specified in seconds.  以秒为单位指定此参数的值
This is important for systems running long queries.  这对于运行长查询的系统很重要

That could be tuned by checking the maxquerylen from v$undostat;  可以通过检查 v$undostat 中的 maxquerylen 来调整

The UNDO_RETENTION value should at least be equal to the length of longest running query on a given database instance.

UNDO_RETENTION 值应至少等于给定数据库实例上运行时间最长的查询的长度。

This can be determined by querying V$UNDOSTAT view once the database has been running for a while.

数据库运行一段时间后,可以通过查询 V$UNDOSTAT 视图来确定

SQL> select max(maxquerylen) from v$undostat;

This needs to be captured when the system has been running for a while and is fully used.

当系统运行了一段时间并且已完全使用时,需要捕获此信息

The following two column are enough to check if you are detecting or not an out of space error and/or ora-1555 one :

以下两列足以检查您是否正在检测到空间不足 error and/or ora-1555

SSOLDERRCNT - The number of ORA-1555 errors that occurred during the interval  间隔期间发生的ORA-1555错误的数量
NOSPACEERRCNT - The number of Out-of-Space errors  空间不足错误数

The folowing Note 262066.1: How To Size UNDO Tablespace For Automatic Undo Management
explains how to set undo tablespace correctly to guarantee undo retention.  介绍了如何正确设置undo表空间以确保undo retention。

When this option is enabled the database never overwrites unexpired undo data that is, undo data whose age is less than the undo retention period.
启用此选项后,数据库将永远不会覆盖未过期的undo数据,即年龄小于undo保留期的undo数据。

The storage and used space for undo is then a direct consecuency on your undo_retention configuration.

这样,undo的存储空间和使用的空间就直接决定了undo_retention配置的安全性。

The recommend value for undo_retention is the value is length of longest running query on a given database instance.
undo_retention 的推荐值是该值是给定数据库实例上运行时间最长的查询的长度。

If you see a message in the trace file like "Query Duration=5095 " means that the Query was running for '5095 sec' when the error occured.

如果在跟踪文件中看到一条消息,例如 "Query Duration=5095 " ,则表示发生错误时查询正在运行  '5095 sec' 。

Note that the UNDO_RETENTION parameter works best if the current undo tablespace has enough space for the active transactions.

请注意,如果当前的undo表空间具有足够的空间用于活动事务,则UNDO_RETENTION参数最有效。

If an active transaction needs undo space and the undo tablespace does not have any free space, then the system will start reusing undo space that would have been retained.
如果活动事务需要undo空间,并且undo表空间没有任何可用空间,则系统将开始重新使用原本保留的undo空间。
This may cause long queries to fail.  这可能会导致长查询失败。
Be sure to allocate enough space in the undo tablespace to satisfy the space requirement for the current setting of this parameter.

确保在undo表空间中分配足够的空间,以满足该参数当前设置的空间要求。

REFERENCES

NOTE:262066.1 - How To Size UNDO Tablespace For Automatic Undo Management
NOTE:269814.1 - ORA-01555 Using Automatic Undo Management - Causes and Solutions

如何确定UNDO_RETENTION参数的值以避免ORA-1555 (Doc ID 822411.1)的更多相关文章

  1. SubSonic3.0使用存储过程查询时,不能使用output参数返回值的问题修改

    有个群友问SubSonic3.0执行存储过程时能不能使用output参数返回值,说测试过后获取不到返回值,早上有些时间所以就尝试修改了一下 首先在数据库中创建一个存储过程 CREATE PROCEDU ...

  2. 使用JS,获取URL中指定参数的值

    /** * 获取URL中指定参数的值 * * @param name 参数名称 * @returns */ function getQueryString(name) { var reg = new ...

  3. Python函数参数默认值的陷阱和原理深究"

    本文将介绍使用mutable对象作为Python函数参数默认值潜在的危害,以及其实现原理和设计目的 本博客已经迁移至: http://cenalulu.github.io/ 本篇博文已经迁移,阅读全文 ...

  4. java函数参数默认值

    java函数参数默认值 今天,需要设定java函数参数的默认值,发现按照其它语言中的方法行不通 java中似乎只能通过函数的重载来实现 函数参数默认代码

  5. 获取URL的code的参数的值

    1.获取URL的code的参数的值 需求说明:现在有URL为http://www.bdqn.cn/index.php?code=sdR4,请使用字符串对象的属性和方法来获取code的值,并把其指都转化 ...

  6. asp.net mvc 在View中获取Url参数的值

    如果url是 /home/index?id=3 直接Request就ok. 但是如果路由设定为:{controller}/{action}/{id} url是 /home/index/3   这时想在 ...

  7. JVM参数(三)打印所有XX参数及值

    本篇文章基于Java 6(update 21oder 21之后)版本, HotSpot JVM 提供给了两个新的参数,在JVM启动后,在命令行中可以输出所有XX参数和值. -XX:+PrintFlag ...

  8. java解析出url请求的路径和参数键值对类 - 转

    import java.util.HashMap; import java.util.Map; public class CRequest { /** * 解析出url请求的路径,包括页面 * @pa ...

  9. 使用JavaScript获取Request中参数的值

    本人很少写博客,有不正确的地方还希望大家多多指导. 假设现在有一个URL,如下. http://www.jacky.com/?id=1101&name=jacky 如何通过JS访问到id和na ...

随机推荐

  1. WebAPI接口测试数据库操作

    通常我们是不建议直接查看数据库内容来检查功能的,但是在没有外部接口或者图形界面验证的情况下,只能通过查询数据库来验证. 比如我们手工需要从界面上添加一万条数据,估计要花好几天时间,显然不能手工去操作. ...

  2. 关于使用DB2数据库的项目后台报-420错误码的问题

    ###  Error querying database.  Cause: com.ibm.db2.jcc.am.SqlDataException: DB2 SQL Error: SQLCODE=-4 ...

  3. VO(视图模型) 与 DTO(数据传输对象)的区别

    目录 VO(视图模型) 与 DTO(数据传输对象)的区别 1.VO与DTO概念 2.VO 视图模型的必要性与解耦 2.1 视图模型 2.2 视图模型存在的必要性 2.3 视图模型的解耦 3.DTO 存 ...

  4. leaflet-webpack 入门开发系列四图层控件样式优化篇(附源码下载)

    前言 leaflet-webpack 入门开发系列环境知识点了解: node 安装包下载webpack 打包管理工具需要依赖 node 环境,所以 node 安装包必须安装,上面链接是官网下载地址 w ...

  5. Ted:1 Vulnhub Walkthrough

    主机层面端口扫描: ╰─ nmap -p1-65535 -sV -A 10.10.202.134 Starting Nmap 7.70 ( https://nmap.org ) at 2019-08- ...

  6. 百度地图在jsp页面加载大量轨迹导致地图卡顿

    原画线方式: //存储大量点轨迹json数组:historyPathList for(var i=0;i<historyPathList.length-1;i++){ drawColorLine ...

  7. Android插件基础之类加载器学习

    记录学习java 加载器学习所获心得,逐步记录了解java加载器的过程.为了知悉android 插件化的实现原理,从而需要从头了解android加载apk,以及基础的java类加载的加载过程情况,为方 ...

  8. 【转】#define 定义别名和 typedef 声明类型的区别

    下面一段程序的执行结果是: #include <stdio.h>#define CHAR2 char*int main(){    typedef char* CHAR;    CHAR ...

  9. mysql登录错误:'Access denied for user 'root'@'localhost'

    首先是不知道怎么忽然mysql用命令行,workbench都登录不了,都提示'Access denied for user 'root'@'localhost'. 数据库卸载重装了几次都不行.好像感觉 ...

  10. Linux系统学习 十七、VSFTP服务—本地用户访问—用户访问控制

    FTP相关文件中用户控制列表文件 /etc/vsftpd/ftpusers        #该文件永远都是黑名单(针对访问ftp服务,一般不做修改) /etc/vsftpd/user_list     ...