UNDO 表空间管理

一、管理UNDO数据的两种方式
  
  自动(9i新特性)和手动(在9i之前唯一的管理方式)。
  
  二、Undo段
  
  在一个进程修改数据库过程中存放旧的数据,包括数据没有修改之前的位置和值。Undo段的头包含了一个事物处理表,表中存放了目前使用undo段事物处理的信息。一个系列的事物处理只使用一个undo段存放undo数据。多个并行事物处理可以同时写入一个undo段。
  
  三、Undo段的作用
  
  1、事务处理rollback
  
  当一个事物处理修改了表中的一行,旧数据的映像就会存放在undo段中。如果事物处理rollback,Oracle Server就使用undo段中值再写回修改行。
  
  2、事物处理恢复
  
  当一个例程失败而还有一些事物处理没有完成,Oracle Server在数据库再次打开的时候就需要将所有没有提交的修改全部undo。这种rollback是事物处理恢复的一部分。由于undo段的修改也会被redo日志文件保护,因此恢复是能够进行的。
  
  3、读取的一致性
  
  当一个事物处理正在运行,其他的用户是不能看到任何这个事物处理没有提交的修改的。另外,在一个查询执行期间的数据改变是不应该显示在这个查询结果当中的。在undo段中的旧的数据(Undo数据)也为用户特定查询提供一个一致的映像。
  
  四、读取的一致性
  
  1、即使其他的事物处理修改了数据,Oracle Server也会保证一个查询看到的数据是一致的。当Oracle Server开始执行一个select查询,它将记录目前系统更改编号(SCN)并且确保这个SCN以后的任何数据修改将不会影响到这个查询结果。比如一个运行时间非常长的查询语句在执行过程中有发生了几个修改,如果一行数据在查询声明以前的修改没有提交,Oracle Server将从undo段中提取没有修改的以前的映像,并构建一个“读取一致”的行映像。
  
  2、事物处理读取一致性
  
  读取的一致性通常是指SQL查询语句。但是也可以通过在紧跟在事物处理声明后使用一下命令来使事物处理的读取也是一致的:
  
  SET TRANSACTION READ ONLY;
  
  或者可以在事物处理使用DML语句的时候在事物处理前面使用一下命令:
  
  SET TRANSACTION ISOLATION LELVEL SERIALIZABLE;
  
  使用上述两种方法都可以保证事物处理在数据读取时候的一致性,但是使用SERIALIZABLE参数将影响性能。

转载于:https://blog.51cto.com/tiany/377062

UNDO 表空间管理相关推荐

  1. oracle 10g undo 管理,Oracle 10g undo表空间管理

    一.oracle 9i起,有两种undo管理方式:AUM Automatic Undo ManagementMUN Manual Undo Management建议使用 AUM ,下面只讨论AUM 一 ...

  2. Oracle undo 表空间管理

    Oracle 的Undo有两种方式: 一是使用undo 表空间,二是使用回滚段. 我们通过 undo_management 参数来控制使用哪种方式,如果设为auto,就使用UNDO 表空间,这时必须要 ...

  3. Oracle undo表空间管理

    当在做DML操作的时候,在修改buffer cache里面的数据块的时候,会对当前块的旧镜像信息做一个保存,保存的数据块就是undo块.undo块上面保存着数据修改前的信息. 生成undo块的几个作用 ...

  4. Oracle 原理:UNDO表空间

    UNDO表空间又称为,回滚表空间,撤销表空间.Undo segment保存在UNDO 表空间,一个数据库可以有多个UNDO表空间,但是在同一时刻中,只能使用同一个UNDO表空间. 一.UNDO表空间的 ...

  5. Oracle数据库 ORA-01555 快照过旧 (undo表空间:撤销表空间)

    UNDO表空间用于存放UNDO数据,当执行DML操作时,oracle会将这些操作的旧数据写入到UNDO段,以保证可以回滚或者一致读等,而临时表空间主要用来做查询和存放一些缓冲区数据.你听说UNDO也是 ...

  6. mysql数据库管理-innode undo表空间

    Innodb独立的undo tablespace 在MySQL5.6中开始支持把undo log分离到独立的表空间,并放到单独的文件目录下:这给我们部署不同IO类型的文件位置带来便利,对于并发写入型负 ...

  7. 【DB笔试面试682】在Oracle中,Undo段中区3种状态分别是什么(Undo表空间系列)?...

    ♣ 题目 部分 在Oracle中,Undo段中区3种状态分别是什么? ♣ 答案部分 Undo信息存储在Undo段中,Undo段又存储在Undo表空间中.Undo表空间仅用于Undo段(在Undo表空间 ...

  8. oracle 10g磁盘管理,Oracle 10g UNDO表空间过大导致磁盘空间不足的解决

    在Oracle 10g数据库的应用中,出现了UNDO表空间过大导致磁盘空间不足而崩溃的现象(ORA-30036: unable to extend segment by 8 in undo table ...

  9. UNDO表空间损坏,爆满,ORA-600[4194]/[4193]错误解决

    模拟手工删除UNDO表空间 在ORADATA 中把UNDOTBS01.DBF 删除 模拟启库 SQL> STARUP; * 第 1 行出现错误: ORA-01157: 无法标识/锁定数据文件 2 ...

最新文章

  1. linux 删除小于、大于固定大小的文件
  2. 【Matlab】矩阵中选取任意子矩阵
  3. c++ 二分查找的函数 lower_bound upper_bound binary_search
  4. IPC--进程间通信四(信号量)
  5. python提取列表中文本_python提取图像的名字*.jpg到txt文本的方法
  6. Badger DAO 将在 DIGG 启动后开放三个新机枪池
  7. php文件便利,PHP便利文件夹下所有文件,创建压缩包
  8. Fiddler笔记一移动端连接
  9. CF11D A Simple Task(状压DP)
  10. 启动tomcat时遇到的问题
  11. 从吃喝玩乐到学习,71个良心网站,看完你会回来点收藏
  12. 局域网联机_红警如何局域网联机?详细联机教程,方法特别简单
  13. 感知哈希算法实现以图搜图软件
  14. HAOI2017 八纵八横——线段树分治+线性基
  15. Pairing heap
  16. 悠漓带你玩转C语言(函数)
  17. SuperMap for MapboxGL 实现自定义图标点位及多点位聚合
  18. 为什么图像成像时近大远小?
  19. idea中同一个项目同时启动多个端口进行访问
  20. 实验三 简单结构局域网组建与配置

热门文章

  1. python获取图片大小_如何在pygame(python)中获取图片大小
  2. 【BZOJ4353】Play with tree,树链剖分线段树
  3. 2.图像作为函数 | 标量、函数、混合图像_6
  4. # 畸变矫正_边缘投影法对文本图像矫正——python
  5. bzoj1047 [HAOI2007]理想的正方形 单调队列
  6. 【英语学习】【WOTD】litmus test 释义/词源/示例
  7. 【英语学习】【WOTD】raddled 释义/词源/示例
  8. Intel Haswell/Broadwell架构/微架构/流水线 (3)-流水线乱序引擎
  9. 图文理解 Spark 3.0 的动态分区裁剪优化
  10. 网站备案负责人_三分钟教你如何做好网站备案