OCP认证考试指南(16):管理撤销

1、撤销数据

如果数据库已被转换使用撤销段,并且自动进行撤销管理,那么任何现有的回滚段都必须处于脱机模式中,而且不能被设置为联机。根据UNDO_MANAGEMENT参数的不同设置,Oracle数据库要么使用撤销段,要么使用回滚段。

2、撤销表空间

一个数据库可以存在多个撤销表空间,但是在任意给定时刻都只能使用一个撤销表空间。撤销表空间必须被创建为持久的、本地管理的并且能够自动扩展分配空间的表空间。

3、事务与撤销段

在某个事务启动时,Oracle会为其指派一个撤销段。任何一个事务都只能受一个撤销段保护,一个事务生成的撤销数据无法被分配到多个撤销段中。
在某个事务更新表和索引数据块时,回滚该变化所需的信息会被写入指定撤销表空间的数据块。
撤销数据在提交后过期的事实意味着可以采用循环方式使用撤销段。
如果使用原有的、人工管理的回滚段,那么调整的重要环节是控制具体事务分别受哪些回滚段保护。

4、管理撤销

4.1、与撤销相关的错误条件

管理撤销的原则十分简单:首先,应当始终存在允许所有事务继续进行的足够撤销空间;其次,应当始终存在保证查询成功的足够撤销数据。
如果某个事务耗尽了撤销空间,那么这个事务就会由于Oracle错误“ORA-30036 unable to extend segment in undo tablespace(无法扩展撤销表空间内的撤销段)”而失败。

4.2、用于撤销管理与撤销保留保证的参数

下面3个初始化参数可以控制撤销:

  • UNDO_MANAGEMENT:默认为manual,就是不会使用撤销段。默认设置是为了实现向后兼容性,最后不要使用默认。建议设置为AUTO,启用使用撤销段的自动撤销管理。参数是静态的。
  • UNDO_TABLESPACE:如果使用了“UNDO_MANAGEMENT=AUTO”,就一定要指定该参数。该参数指定了一个作为有效撤销表空间的表空间,并且该表空间必须已被创建为一个撤销表空间,同时其内部的所有撤销段都会被自动联机。
  • UNDI_RETENTION:可选,以秒为单位进行设置的参数。指定了保留过期撤销数据的目标位置。如果配置了保证撤销保留,那么该参数就不是可选的。针对撤销的默认模式是:对于事务与查询来说,Oracle更倾向于维护事务。10G版本中存在保证撤销保留的选项,意味着经过UNDO_RETENTION参数所指定的时间之前,撤销数据决不会被重写。

可以用SQL*Plus更改某个表空间的撤销保留保证,但是无法通过EM完成相同的功能。

4.3、调整与监视撤销表空间

撤销表空间应当足够大,算法的话,首先计算在最高工作负荷时生成撤销的速度,然后再乘以耗时最长的查询的时间长度。

4.4、删除与缩小撤销表空间

创建一个撤销表空间时,Oracle会在这个表空间内创建一个撤销段池。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值