自动撤销管理(AUM)

原创 2012年03月23日 06:27:45

一设置AUM

  设置自动撤销管理,涉及三个参数:undo_management、undo_tablespace、undo_retention

  1、undo_management

  设置自动撤销管理,必须设置初始化参数undo_management=auto

  alter system set undo_management=auto scope=spfile;

  该参数也是必须要设定的

  2、undo_tablespace

  指定数据库使用的撤销表空间

  (1)如果没有指定该参数且没有可用的撤销表空间,oracle将使用system表空间。

  如果没有指定该参数,但有撤销表空间,oracle将使用该撤销表空间;若有多个撤销表空间,oracle将使用第一个可用的作为数据库撤销表空间。

  如果该参数指定的撤销表空间不存在,将报错。

  (2)即便数据库中有多个撤销表空间,oracle在同一时间也将只是用一个;可以使用该参数切换oracle使用的撤销表空间

  alter system set undo_tablespace=undo_tablespace_name;

  oracle使用的撤销表空间不能被删除,需要删除的话,必须先切换撤销表空间。

  (3)创建撤销表空间:

  create undo tablespace undo_tablespace_name

  datafile 'data_path_name'

  size nm

  [autoextend on next mm maxsize pm]

  [extent management local ]                            

  [segment space management manual]  --撤销表空间的段空间管理必须为manual

  [{uniform [ size am] } | autoallocate]

  (4)如果不能确定撤销表空间的大小,可以先使用自动扩展的数据文件,在创建撤销表空间时指定,也可以通过下面方式:

  alter database datafile 'datafile_path_name' autoextend on next mm maxszie pm;

  在确定撤销表空间的大小后再使用固定的表空间:

  alter database datafile 'datafile_path_name' autoextnd off;

  3、undo_retention

  指定已提交事务的撤销数据保留的时间长短

  alter system set undo_retention=n            --n为保留的时间大小,默认为900,单位秒

  oracle绝对保证活动的撤销数据,即事务尚未提交的撤销数据。如果空间不足,将先删除事务已经提交且保留时间超过undo_retention设定值的撤销数据,如果空间仍然不足,将删除事务已经提交但保留时间未超过undo_retention设定值的撤销数据。

  (1)使用AUM且数据文件自动扩展,oracle将以undo_retention设定的值为最小值,自动调整撤销保留时间,照顾到数据库中最长查询的撤销要求。

  (2)使用AUM但固定数据文件,oracle将忽略用户设定的undo_retention的值,自动调整撤销保留时间,尽最大努力保留撤销数据。

  (3)前两种情况相比,如果空间允许,一般使用固定数据文件时撤销数据保留的时间要长。

二、如何设置undo_retention?

  建议参考数据库中最长事务的时间大小,设置的undo_retention应该比最长事务的时间稍大一点。

  select max(maxquerylen) from v$undostat;

  如果使用闪回,应该保证undo_retention的设置能够满足的闪回要求。

三、如何确定撤销表空间的大小

  建议首先创建自动扩展的撤销表空间,之后使用undo advisor确定撤销表空间的大小,然后更改撤销表空间为固定大小。

四、有保证的撤销保留

  使用undo_retention设定保留时间,oracle并不一定能满足你的要求,当空间不足时,oracle依然会删除没有达到保留时间的撤销数据。如果需要强制oracle按照你设定值保留撤销数据,可以使用有保证的撤销保留。

  1、create undo tablespace

       .....

       retention guarantee;

  2、alter tablespace undo_tablespace_name retention guarantee;

  取消有保证的撤销保留:alter tablespace undo_tablespace_name retention noguarantee;

  使用有保证的撤销保留,如果空间不足以满足活动事务,那么所有的DML操作都不允许,会收到空间出超的错误;二DDL语句可以继续进行。

相关文章推荐

【翻译自mos文章】使用aum( Automatic Undo Management) 时遇到 ORA-01555错误--- 原因和解决方案。

使用aum( Automatic Undo Management) 时遇到 ORA-01555错误--- 原因和解决方案。

【React全家桶入门之九】图书管理与自动完成

图书管理还记得搭建项目的时候在db.json文件里写的book吗
  • awaw00
  • awaw00
  • 2017年02月07日 17:50
  • 3597

java自动内存管理机制

java自动内存管理 1.运行时的数据区域         java程序在运行的过程中把它所管理的内存划分为若干个区域分别是:         1. 方法区      2. 虚拟机栈       3....

svn多项目管理及自动发布项目

就目前而言,很多的技术文档已不再更新;对于新手来说,在一个项目或者公司需要用到很多的而不知道的或者比较少见的技术。需要在互联网上搜索资料,时间浪费了;久久不能搜索到自己想要的东西!在这个过程中,我们浪...
  • szlcsdn
  • szlcsdn
  • 2015年09月15日 08:58
  • 570

Oracle11g 自动内存管理(转)

这是我的 Oracle 11g 系列的文章之一. Oracle 的 9i/10g 中已经对内存管理逐步做了很大的简化,11g 则更进一步,引入了一个新的概念自动化内存管理(Automatic M...

一个通用的单元测试框架的思考和设计04-实现篇-自动管理测试数据

上篇文章罗列了整个框架的核心接口,这篇文章将提供IunitExecutionListener的一个实现类-DatasetProviderListener,主要用来将测试数据插入到数据库中,待测试完成后...

Spring如何设置让事务自动提交和回滚?Spring两种事务管理方式的配置及使用

1,我们要明确,Spring如何设置让事务自动提交和回滚?        ①如何自动提交?           理论上,可以通过对DataSource如下设置,让事务自动提交 [html] ...

深入Java虚拟机(1)-自动内存管理篇

前文 Java内存区域和内存溢出异常 1运行时数据区域 2Hotspot 虚拟机对象探秘前文本系列的观点主要引自周志明著的“深入理解Java虚拟机”,主要是看了之后的一些总结和特点分析。 Java内存...

如何让service被管理器杀死后自动重启

本文出自:http://androidkaifa.com/thread-292-1-1.html 欢迎转载,转载请注明出自:www.androidkaifa.com    安卓开发网     笔者...

深入理解java虚拟机之自动内存管理机制

java虚拟机是什么? 抽象规范 仅仅是一种概念 一个具体的实现 可能来自多个提供商或者运行在多个平台上 一个运行中的虚拟机实例  当运行一个java程序的同时,其实就是运行了一个java虚...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:自动撤销管理(AUM)
举报原因:
原因补充:

(最多只允许输入30个字)