自动撤销管理(AUM)

一设置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语句可以继续进行。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值