转载: 原文地址:http://blog.csdn.net/oradh/article/details/24631641
一、什么是undo(引用官方文档)
Every Oracle Database must have a method of maintaining information that is used to roll back, or undo, changes to the database. Such information consists of records of the actions of transactions, primarily before they are committed. These records are collectively referred to as undo.
二、undo的作用(引用官方文档)
-
Roll back transactions when a ROLLBACK statement is issued
-
Recover the database
-
Provide read consistency
-
Analyze data as of an earlier point in time by using Oracle Flashback Query
-
Recover from logical corruptions using Oracle Flashback features
When a ROLLBACK statement is issued, undo records are used to undo changes that were made to the database by the uncommitted transaction. During database recovery, undo records are used to undo any uncommitted changes applied from the redo log to the datafiles. Undo records provide read consistency by maintaining the before image of the data for users who are accessing the data at the same time that another user is changing it.
三、undo相关参数
参数名 | 描述 |
undo_retention | 指定事务commit或者rollback后,对应的undo段 的过期(expired )时间,过期的段可以被后续事务重用,单位为分钟 |
undo_tablespace | undo自动管理方式下,指定管理undo信息的表空间 |
_undo_autotune | 禁用undo的自动调整 |
UNDO_MANAGEMENT | 指定undo段(非系统)的管理方式,9i以后默认为自动管理,推荐设置为自动管理方式 |
四、undo相关视图
五、undo表空间的使用方式
由于undo段空间保存的内容为数据块改变的前映像数据,因此这些空间的内容是循环使用,跟redo日志文件差不多,基本都是最早被使用的内容被最先覆盖。