- 浏览: 164335 次
- 性别:
- 来自: 上海
文章分类
最新评论
-
钱少少:
programming 写道和maven相比没优势
ivy只是 ...
ant+ivy管理项目 -
programming:
和maven相比没优势
ant+ivy管理项目 -
钱少少:
kingsfighter 写道和maven相比,有什么优势?
...
ant+ivy管理项目 -
kingsfighter:
和maven相比,有什么优势?
ant+ivy管理项目 -
zhijie_zhang:
搭建java-web框架(一)
深度理解Oracle10g中UNDO_RETENTION参数
每一中数据库都需要有一种管理回滚或者撤销数据的方法。当一个DML发生以后,在用户还没有提交(COMMIT)改变,用户不希望这种改变继续保持,需要撤销所做的修改,将数据回退到没有发生改变以前,这时就需要使用一种被称为撤销记录的数据。
使用撤销记录,我们可以:
1、 当使用ROLLBACK语句时回滚事务,撤销DML操作改变的数据
2、 恢复数据库
3、 提供读取的一致性
4、 使用Oracle Flashback Query分析基于先前时间点的数据
5、 使用Oracle Flashback特性从逻辑故障中恢复数据库
Oracle10g中的自动撤销管理(AUM)
在Oracle10g中对于回滚段的管理可以通过配置参数而实现自动管理。为启用撤销空间的自动管理,首先必须在init.ora中或者SPFILE文件中指定自动撤销模式。其次需要创建一个专用的表空间来存放撤销信息,这保证用户不会在SYSTEM表空间中保存撤销信息。此外还需要为撤销选择一个保留时间。
如果需要实现AUM,需要配置以下3个参数:
UNDO_MAMAGEMENT
UNDO_TABLESPACE
UNDO_RETENTION
查看初始化参数的设置:
SQL> show parameter undo_tablespace;
NAME TYPE VALUE
------------------------------------ ----------- -----------------------
undo_tablespace string UNDOTBS1
SQL> show parameter undo_management;
NAME TYPE VALUE
------------------------------------ ----------- -----------------------
undo_management string AUTO
SQL> show parameter undo_retention;
NAME TYPE VALUE
------------------------------------ ----------- -----------------------
undo_retention integer 900
SQL>
初始化参数的描述:
Initialization Parameter Description
UNDO_MANAGEMENT If AUTO, use automatic undo management. The default is MANUAL
UNDO_TABLESPACE An optional dynamic parameter specifying the name of an undo tablespace. This parameter should be used only when the database has multiple undo tablespaces and you want to direct the database instance to use a particular undo tablespace.
UNDO_RETENTION The UNDO_RETENTION parameter is ignored for a fixed size undo tablespace. The database may overwrite unexpired undo information when tablespace space becomes low.
For an undo tablespace with the AUTOEXTEND option enabled, the database attempts to honor the minimum retention period specified by UNDO_RETENTION. When space is low, instead of overwriting unexpired undo information, the tablespace auto-extends. If the MAXSIZE clause is specified for an auto-extending undo tablespace, when the maximum size is reached, the database may begin to overwrite unexpired undo information.
如果将初始化参数UNDO_MANAGEMENT设置为AUTO,则Oracle10g将启用AUM。
可以在初始化参数UNDO_RETENTION中设置撤销保留时间的大小:
UNDO_RETENTION=1800 设置保留时间为30分钟(1800秒)
UNDO_RETENTION参数默认设置为900秒。
UNDO_RETENTION的值应该设置为多少才合理?
不存在理想的UNDO_RETENTION的时间间隔。保留时间间隔依赖于估计最长的事务可能运行的时间长度。根据数据库中最长事务长度的信息,可以给UNDO_RETENTION分配一个大致的时间。
可以通过v$undostat视图的maxquerylen列查询在过去的一段时间内,最长的查询执行的时间(以秒为单位)。UNDO_RETENTION参数中的时间设置应该至少与maxquerylen列中给出的时间一样长。
Oracle提供如下为新数据库设置撤销保留时间间隔的指导:
1、 OLTP系统:15分钟
2、 混合: 1小时
3、 DSS系统:3小时
4、 闪回查询:24小时
UNDO_RETENTION参数的较高值并不保证撤销数据保留UNDO_RETENTION参数指定的时间。为保证撤销保留指定的时间,必须使用RETENTION GRARANTEE子句。
例如:
CREATE UNDO TABLESPACE UNDOTBS01
DATAFILE
‘E:\oracle\product\10.2.0\oradata\keymen\UNDOTBS01.DBF’
SIZE 500M AUTOEXTEND ON
RETENTION GUARANTEE
也可以使用ALTER DATABASE命令保证数据库中的撤销保留
ALTER DATABASE UNDOTBS01 RETENTION GUARANTEE
关闭撤销信息的保证保留
ALTER DATABASE UNDOTBS01 RETENTION NOGUARANTEE
设置撤销表空间的尺寸
Oracle建议使用Undo Advisor的帮助下设置撤销表空间的尺寸。可以创建一个小尺寸(大约500M)的撤销表空间,AUTOEXTEND数据文件属性设置为ON,从而允许表空间自动扩展。此表空间将自动增长以支持数据库中活动事务数目的增长以及事务长度的增长。
在数据库运行适当的一段时间后,可以使用UNDO Advisor来得出关于设置撤销表空间尺寸的建议。应该使用Analysis Time Period字段中允许的最大时间。出于此目的,可以使用OEM UNDO Management页面中给出的Longest——Runing Query长度。还必须根据闪回需求指定New UNDO Retention字段的值。例如:如果希望表能闪回24小时,应该使用24小时作为这个字段的值。
假如数据库中用RETENTION GUARANTEE子句配置了保证保留撤销。如果撤销表空间太小不能满足使用它的所有活动事务,那么会发生以下情况:
1、 如果撤销表空间用完85%,Oracle将发布一个自动表空间警告
2、 当撤销表空间用完97%时,Oracle将发布一个自动表空间严重警告
3、 所有DML语句将不允许,并且会接收到一个空间超出错误
4、 DDL语句允许继续执行
发表评论
-
Oracle同义词创建及其作用
2014-03-05 10:30 700Oracle的同义词(synonyms)从字面上理解就是别名 ... -
oracle中将列转化为行
2012-10-25 11:40 932oracle 10g以后 wm_concat函数的运用 准备 ... -
索引的运用
2012-09-18 17:48 1297索引整理 SQL语法整理——索引 什么是索引 数据 ... -
ORACLE PL/SQL编程之八:(触发器经典实例(全))
2012-08-03 13:54 1059ORACLE PL/SQL编程之八: ... -
oracle触发器详解实例
2012-08-03 13:36 1552语法规则: Create [or replace] trigg ... -
JNDI全面总结 (tomact中配置连接池)
2012-08-02 12:42 4029JNDI全面总结 原理: 在DataSo ... -
系统运行一段时间后,提升其速度的方法总结
2012-07-30 18:08 1353BI系统运行一段时间后 ... -
ORACLE中函数和存储过程的区别
2012-07-20 15:40 1074函数和存储过程的区别 从参数的返回情况来看: 如果返 ... -
pl_sql中函数的基本运用
2012-05-16 17:42 8511基本函数 create or replace functio ... -
plsql中利用函数将一个逗号分隔字符串转义返回单个的列
2012-04-05 15:12 53631.传进去一个字符串,类似于'123,456'; CREATE ... -
sql中的having和where的作用
2012-02-24 16:39 1429例子: select max(orgid) from au ... -
pl-sql中函数循环插入值方式一
2012-02-14 10:39 1729create or replace function F_TE ... -
给表中增加一列或者修改列类型,大小脚本
2012-02-13 16:27 1095修改表中的某列: alter table tablename ... -
sql语句-创建索引
2012-02-07 15:59 1055语法: CREATE [索引类型] INDEX 索引名称 ON ... -
(转)SQL 优化原则(精)
2012-02-07 15:47 837(转)SQL 优化原则 一、问题的提出 在应用系统开发 ... -
pl-sql中关于函数test及存储过程中调用function函数
2012-02-07 15:20 2233对于存储过程可以直接反键test 但是对于函数就要先在过程中 ... -
oracle中恢复表数据及相关设置
2011-12-28 14:00 1014>1、从flash back里查询被删除的表 ... -
oracle中死锁及解锁
2011-12-21 17:48 2691SELECT OBJECT_ID,SESSION_ID,SER ... -
sqlserver和oracle中去除某一字段中重复字节,以逗号分隔
2011-12-15 16:19 2802sqlserver: create function ren ... -
树状数据库表:Oracle中start with...connect by prior子句用法
2011-12-15 15:57 1447Oracle中start with...connect by ...
相关推荐
本文将围绕“达梦修改UNDO_RETENTION”这一主题,详细探讨这一设置对数据库性能的影响及其调整方法。 UNDO RETENTION参数在数据库中扮演着至关重要的角色,它定义了撤销段(UNDO SEGMENT)中数据保留的时间长度。...
- **保证撤销保留**: 可以通过设置参数 `undo_retention` 来保证撤销数据的保留时间。 #### 使用撤销顾问 (Undo Advisor) - **撤销顾问**: 提供有关撤销数据使用情况的信息,帮助管理员了解撤销表空间的性能,并...
解决 undo 段急剧增大问题的方法有多种,例如,调整 undo_retention 的时间,调整 undo 段的大小,使用 v$transaction 视图来查看事务执行的时间,使用 v$undostat 视图来确定事务的 undo 块的使用情况。 steal ...
- 设置UNDO表空间的公式大致为:Undo Size = Undo Retention * UPS,其中UPS是Undo Blocks per Second。可以通过查询`v$undostat`视图来获取UPS值。 2. **Redo Log Files** - Redo日志文件与UNDO表空间不同,它们...
为了防止数据在undo_retention期间被覆盖,可以通过设置undo_tablespace的undo_retention参数来确保所需的Undo保留时间。 ORA-01555错误通常是因为Undo信息在需要时已被重用或删除,解决方法包括增加Undo表空间大小...
- UNDO_RETENTION参数:根据业务需求调整undo信息的保留时间,避免undo空间不足或浪费。 - UNDO_SIZE参数:预分配undo空间,减少动态分配的开销。 5. **工具与源码** 提供的`重做ondo表空间.sql`可能包含用于...
- **UNDO_RETENTION**: 这个参数决定了未提交事务的数据在UNDO表空间中保留的时间长度,以秒为单位。默认情况下,该值可能因系统而异,但通常为900秒(15分钟)或更长时间。这直接关系到误删数据后能否利用UNDO表空间...
2. Oracle 10g 引入了自动 Undo 保留(Autotune Undo Retention),系统会根据需要自动调整 Undo 的保留时间。 3. Oracle 12c R1 引入了共享 Undo 模式(Shared Undo Mode),在多租户容器数据库(CDB)中,多个可...
- 定期监控undo表空间的使用情况,根据业务需求调整`undo_retention`等参数。 - 在进行任何恢复操作前,备份所有相关数据和配置文件,以防不测。 综上所述,undo表空间的管理和恢复是Oracle数据库管理员必须掌握的...
回滚表空间的大小设置受到三个因素影响:undo_retention(回滚保留期)、每秒产生的回滚数据块的数目(UPS)和db_block_size(数据块大小)。通过以下公式计算所需空间:UndoSpace = UR*(UPS * DBS) + DBS * 24。...
- **参数定义**:`UNDO_RETENTION` 参数用于控制已提交的 UNDO 数据在 UNDO 表空间中保留的时间(单位:秒)。 - **参数设置**:在本例中,`UNDO_RETENTION` 设置为 1000 秒,并且 UNDO 保留不是保证的。 - **正确...
DBA可以通过调整Undo表空间的大小,设置UNDO_RETENTION参数来配置Undo信息的保留时间,以确保有足够的Undo数据来支持SELECT语句在设定的时间范围内运行。 Oracle提供自动Undo管理,通过设置UNDO_MANAGEMENT=AUTO和...
- 设置`db_flashback_retention_target`参数来指定保留UNDO数据的时间长度。 - `UNDO_MANAGEMENT`必须设置为自动模式(AUTO)。 - `UNDO_RETENTION`设置合适的值以确保有足够的UNDO数据用于闪回。 ##### 2. 表闪回...
- **Undo表空间满**:监控并定期扩展,或者设置合理的undo_retention参数以控制undo数据的保留时间。 - **性能问题**:优化事务,减少undo的使用,或者调整undo表空间大小和分配策略。 - **回滚失败**:检查权限...
这是通过参数 UNDO_RETENTION 控制的,以秒为单位定义。因此,值 900 表示 15 分钟。 一定要意识到,如果 undo 表空间中存在空间压力时,我们不保证前镜像一定会保留这么长时间。 因此,以下公式可用于计算佳 ...
为了避免这种情况,可以增加UNDO_RETENTION值,以延长撤销数据的保存时间;同时,优化应用设计,减少长时间运行的事务,也是有效策略之一。 通过以上解析,我们可以看到回滚段管理在Oracle数据库中的重要性,它不仅...
- **选项E:UNDO_RETENTION参数的值**(The value of the UNDO_RETENTION parameter): UNDO_RETENTION参数决定了撤销数据在UNDO表空间中保留的时间长度。较高的值意味着需要更大的UNDO表空间以确保撤销数据可以在更...