一、当我们对数据库进行DML操作的时候,Oracle能通过undo为我们提供保存修改前数据的镜像。作用:
1、提供读一致性
例如用户A修改表TB1,在他进行操作前Oracle将TB1存放于undo中,在用户A修改的同时用户B若访问TB1,则访问
的是undo中的TB1,其他访问TB1的用户也是如此,因此在用户A修改TB1的时候,undo保证了其他用户对TB1的
读一致性。
2、为事务提供回滚
通过保留在undo中的镜像来恢复用户未提交的数据。当用户未提交数据,而此时数据库发生异常关闭,undo中保留的
镜像会自动将数据回滚。
3、提供闪回操作
保留在undo中的镜像在事务结束后并未马上删除,而是保留了一段时间,在这段时间内用户即便已经提交了事务,
仍可以通过 flashback 技术查询。
二、与undo表空间相关的参数:
undo_management:表示undo表空间的管理方式。(9i后的管理方式都是AUTO)
undo_retention:当事务提交后,相关的undo块可以保持多长时间不被覆盖,如图为900s。
<