oracle-undo

tips:串行化隔离级别:事务开始后,对一张表不会被别人影响,对于审计工作比较有用,避免了幻读。
undo表空间:自动生成段,自动生成区,自动维护的,不像一般的表空间,有表才有段。同时oracle自动使用undo段。我们只要保证undo表空间大小就可以了。
oracle-undo_第1张图片
oracle-undo_第2张图片
undo表空间中的段
oracle-undo_第3张图片
0段是系统表空间的undo段,对数据字典进行回滚时候(对oracle对象进行增加减少),使用到。
1-10是正常的undo段
某个段
oracle-undo_第4张图片
uodo段管理方式
9i之前,区的分配手工做,之后都是自动管理。
oracle-undo_第5张图片

uodo的三个作用
一、将修改前的数据保存,保证回滚
二、每个事务的独立性,,提供读一致性(A会话和B会话不影响),A 如果已经在修改数据,同时没有提交,,B回话在查询时候,新开一个buffer cache(cr块),将uodo段的内容读进去。(mvcc)
三、实例的崩溃恢复。前滚恢复的脏块有可能是未提交的,需要回滚。

undo段中区的状态
free:未分配的
expired:过期(图中是900秒)
inactive:提交后,提交后,正常来讲是可以被复用的。但一般保留一段时间。
active:区中的事务还没有提交
oracle-undo_第6张图片
参数保留900秒,15分钟

你可能感兴趣的:(oracle,数据库)