Oracle 深入学习 Part 10: Managing Undo Data(管理Undo数据)

1. Undo的定义

Undo 是一个存储旧数据的位置,事务在对数据进行修改时会将旧数据存入 Undo Segment,以便在需要时进行回滚操作或其他功能支持。


2. Undo 的功能

  1. 事务回滚(主动)
    当事务需要回滚时,利用 Undo Segment 中的数据恢复到原始状态。
  2. 事务恢复(被动)
    在系统故障时,通过 Undo Segment 恢复未完成的事务。
  3. 读一致性
    通过 SCN(System Change Number)实现数据的读一致性,确保查询时看到的是修改前的数据。

3. Undo 的管理方式

  1. 手动管理
    手动配置并管理 Undo 的相关参数。
  2. 自动管理
    • 必须配置一个 Undo Tablespace。
    • 每个实例都需要分配一个 Undo Tablespace。
    • Undo Segment 可以服务多个事务,但一个 Block 仅属于一个事务。
    • 系统允许创建多个 Undo Segment,但同时只有一个处于活跃状态。

4. Undo Segment 的类型

  1. System 类型
    系统专用的 Undo Segment。
  2. Non-System 类型
    非系统专用的 Undo Segment。
  3. Deferred 类型
    用于事务恢复的 Undo Segment。
相关推荐
码云数智-大飞8 分钟前
分布式数据库:2026年数据架构的基石与挑战
开发语言
秦jh_16 分钟前
【Redis】Set和Zset
数据库·redis·缓存
查古穆21 分钟前
python进阶-推导式
开发语言·python
what_201822 分钟前
PostgreSQL 时间
数据库·postgresql
njidf29 分钟前
C++中的访问者模式
开发语言·c++·算法
Nyarlathotep011335 分钟前
Redis的数据结构(4):跳表
数据库·redis
☆56641 分钟前
如何为开源Python项目做贡献?
jvm·数据库·python
Bdygsl43 分钟前
MySQL(5)—— 聚合查询/分组查询/联合查询
数据库·mysql
英俊潇洒美少年44 分钟前
js 同步异步,宏任务微任务的关系
开发语言·javascript·ecmascript