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. win10环境下为mongoDB创建用户并认证登录

    一.配置mongoDB的bin目录到环境变量中的path;例如:D:\DatabaseService\MongoDB\Server\4.0\bin 二.cmd打开控制台,然后输入mongo回车,可以进 ...

  2. 精通awk系列(12):awk getline用法详解

    回到: Linux系列文章 Shell系列文章 Awk系列文章 getline用法详解 除了可以从标准输入或非选项型参数所指定的文件中读取数据,还可以使用getline从其它各种渠道获取需要处理的数据 ...

  3. DataGridView自动保存列的宽度和位置

    WinForm程序中表单的自动保存列的宽度和位置,是一种常见的功能,对于用户体验来说是非常好的.现记录一下实现过程: 1.新建一个类,命为为:DataGridViewColumnStyle. 这个类实 ...

  4. ViewAnimator

    ViewAnimator是一个基类,它继承了FrameLayout,因此它表现出FrameLayout的特征,可以将多View组件叠在一起.ViewAnimator额外增加的功能正如它的名字所暗示的, ...

  5. TP事物的写法

    Db::startTrans(); try{ Db::commit(); } catch (\Exception $e) { Db::rollback(); } use think\Db; publi ...

  6. SQL Server重建索引与重组索引会更新统计信息吗?

    在SQL Server中重建索引(Rebuild Index)与重组索引(Reorganize Index)会触发统计信息更新吗? 那么我们先来测试.验证一下: 我们以AdventureWorks20 ...

  7. Tornado—接口调用时方法执行顺序

    import tornado.web # web服务 import tornado.ioloop # I/O 时间循环 class MainHandler(tornado.web.RequestHan ...

  8. SQL Server 索引分析开关

    set statistics io onset statistics profile on

  9. java之this关键字和super关键字的区别

    编号 区别点 this super 1 访问属性 访问本类中的属性,如果本类没有此 属性则从父类中继续查找 访问父类中的属性 2 调用方法 访问本类中的方法 直接访问父类中的方法 3 调用构造器 调用 ...

  10. yii2 提示

    控制器中: Yii::$app->getSession()->setFlash('success', "描述!"); Yii::$app->getSession( ...