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。
相关推荐
原来是好奇心4 分钟前
深入Spring Boot源码(六):Actuator端点与监控机制深度解析
java·开发语言·源码·springboot
Nandeska7 分钟前
2、数据库的索引与底层数据结构
数据结构·数据库
小卒过河010422 分钟前
使用apache nifi 从数据库文件表路径拉取远程文件至远程服务器目的地址
运维·服务器·数据库
过期动态28 分钟前
JDBC高级篇:优化、封装与事务全流程指南
android·java·开发语言·数据库·python·mysql
WizLC29 分钟前
【Java】各种IO流知识详解
java·开发语言·后端·spring·intellij idea
Mr.朱鹏32 分钟前
SQL深度分页问题案例实战
java·数据库·spring boot·sql·spring·spring cloud·kafka
傻啦嘿哟38 分钟前
实战:用Splash搞定JavaScript密集型网页渲染
开发语言·javascript·ecmascript
一位代码38 分钟前
mysql | 常见日期函数使用及格式转换方法
数据库·mysql
Knight_AL41 分钟前
Java 线程池预热(Warm-up)实战:开启与不开启到底差多少?
java·开发语言
SelectDB1 小时前
Apache Doris 4.0.2 版本正式发布
数据库·人工智能