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。
相关推荐
-$_$-几秒前
【笔试真题】2024秋招京东后端开发岗位-第一批笔试
java·开发语言
ATaylorSu8 分钟前
经典算法之美:冒泡排序的优雅实现
开发语言·笔记·学习·算法
小云数据库服务专线38 分钟前
GaussDB 数据库设计规范
数据库·设计规范·gaussdb
FlechazoCLF1 小时前
QT中使用OpenCV保姆级教程
开发语言·qt·opencv
我来整一篇1 小时前
[mssql] 分析SQL Server中执行效率较低的SQL语句
数据库·sql·sqlserver
lifallen1 小时前
AbstractExecutorService:Java并发核心模板解析
java·开发语言·数据结构·算法
元亓亓亓1 小时前
Redis--day1--初识Redis
数据库·redis·缓存
每天敲200行代码1 小时前
Redis 初识Redis
数据库·redis·github
波波玩转AI2 小时前
MyBatis核心
数据库·mybatis
weixin_437499922 小时前
【PHP 构造函数与析构函数:从基础到高级的完整指南】
开发语言·php