ORACLE UNDO 机制
2014-01-23 12:34
162 查看
UNDO作用:
1、回滚,rollback时
2、构造CR块,提供读一致性
3、回滚,实例恢复的时候
undo表空区的状态:
1、free 可以使用的回滚段的区
2、active 表示此区中有活动的未提交的事务块
3、inactive 表示此区中的事务已经提交,但未过undo_retention默认900秒时间,原则上ORACLE不会覆盖他,但在UNDO空间不足,压力大时也会被覆盖。
4、expired 过了undo_retention时间的区
alter tablespace undotbs1 retention guarantee
此参数默认为noguarantee,select TABLESPACE_NAME,RETENTION from dba_tablespaces;可查
修改成guarantee表示如果我们希望或想要求inactive区保证在900秒时间内不会被覆盖,只有过了retention时间变成了expired状态才可以被覆盖。
UNOD使用顺序:
先找free区空间,如果不够ORACLE会尝试扩容UNDO表空间,如果不够或不能扩容,则会尝试覆盖使用expired状态的区空间,如果expired也不够,则会尝试覆盖使用inactive状态的区空间,如果设置了guarantee参数不能使用此状态空间,或者inactive空间也用完了,事务则会被挂起。
1、回滚,rollback时
2、构造CR块,提供读一致性
3、回滚,实例恢复的时候
undo表空区的状态:
1、free 可以使用的回滚段的区
2、active 表示此区中有活动的未提交的事务块
3、inactive 表示此区中的事务已经提交,但未过undo_retention默认900秒时间,原则上ORACLE不会覆盖他,但在UNDO空间不足,压力大时也会被覆盖。
4、expired 过了undo_retention时间的区
alter tablespace undotbs1 retention guarantee
此参数默认为noguarantee,select TABLESPACE_NAME,RETENTION from dba_tablespaces;可查
修改成guarantee表示如果我们希望或想要求inactive区保证在900秒时间内不会被覆盖,只有过了retention时间变成了expired状态才可以被覆盖。
UNOD使用顺序:
先找free区空间,如果不够ORACLE会尝试扩容UNDO表空间,如果不够或不能扩容,则会尝试覆盖使用expired状态的区空间,如果expired也不够,则会尝试覆盖使用inactive状态的区空间,如果设置了guarantee参数不能使用此状态空间,或者inactive空间也用完了,事务则会被挂起。
相关文章推荐
- Oracle Core 学习笔记一 -- Redo 和 Undo 机制详解
- Oracle Core 学习笔记一 -- Redo 和 Undo 机制详解
- Oracle Core 学习笔记一 -- Redo 和 Undo 机制详解
- Oracle Core 学习笔记一 -- Redo 和 Undo 机制详解
- Oracle Core 学习笔记一 -- Redo 和 Undo 机制详解(转载)
- Oracle Core 学习笔记一 -- Redo 和 Undo 机制详解
- Oracle undo 管理
- Oracle Redo Log 机制 小结
- ORACLE UNDO REDO查看
- 理解redo(7)oracle redo并行机制的原理介绍 .
- oracle undo 表空间 ——估算UNDO表空间的大小 .
- oracle undo表空间切换
- oracle的锁和并行机制 推荐
- Oracle 培训笔记 8.27 redo undo checkpoint
- Oracle 11g UNDO 管理 详解
- oracle undo的继续实验
- <Oracle基本的数据存储机制-表>
- Oracle 11g Flashback_transaction_query的undo_sql列为空
- Oracle undo我们需要掌握什么
- ORACLE锁机制