数据库事务中的重做与回滚机制解析
在数据库操作中,理解重做(Redo)和回滚(Undo)机制对于确保数据的完整性和一致性至关重要。下面我们将深入探讨这些机制在不同场景下的工作原理。
插入操作后的回滚现象
在进行插入操作时,插入操作会使表的高水位线(HWM)下添加新的格式化但为空的块。这些块在全扫描时会被读取以检查是否包含行。在 Oracle 11g Release 2 及更高版本中,默认采用延迟段创建模式。例如,创建表时,最初不会分配任何存储或区。直到插入操作发生,段才会被创建,而回滚操作并不会“释放”已分配的存储。以下是一个示例:
EODA@ORA12CR1> drop table t purge;
Table dropped.
EODA@ORA12CR1> create table t ( x int )
2 segment creation deferred;
Table created.
EODA@ORA12CR1> select extent_id, bytes, blocks
2 from user_extents
3 where segment_name = 'T'
4 order by extent_id;
no rows selected
EODA@ORA12CR1> insert into t(x) values (1);
1 row created.
EODA@ORA12CR1> rollback;
Rollback complete.
EODA@ORA12CR1> select extent_id, bytes, block
超级会员免费看
订阅专栏 解锁全文
362

被折叠的 条评论
为什么被折叠?



