undo表空间中undo段是自动生成的,oracle自动使用undo表空间的undo段。
作为高级DBA,需要了解Oracle是如何使用undo段的。这样出了性能问题才能够解决。
 
1.Undo表空间及管理方式
show parameter undo_tablespace
show parameter undo
Undo段

select * from v$rollname;
select SEGMENT_NAME,BLOCKS,EXTENTS from dba_segments where SEGMENT_NAME='_SYSSMU1$';
select SEGMENT_NAME,TABLESPACE_NAME,EXTENT_ID,FILE_ID,BLOCK_ID,BLOCKS from dba_extents where SEGMENT_NAME='_SYSSMU1$';
select owner, segment_name, tablespace_name from dba_rollback_segs;
select name from v$parameter where name like '%undo%';

UNDO表空间占用空间情况以及数据文件存放位置

select file_name,bytes/1024/1024 from dba_data_files
where tablespace_name like '%UNDOTBS%';

undo的三个作用

    ①事物回滚(rollback)
    ②读一致性,构造CR块
    ③实例恢复,回滚未提交事物
Undo段中区的四种状态
    free
    expired
    inactive
    active
显示UNDO区信息

SELECT extent_id, bytes, status FROM dba_undo_extents
WHERE segment_name='_SYSSMU1$';

undo_retention (undo段中区状态为inactive状态的保留时间)

下面参数作用主要是对于undo段中区的状态为inactive状态的覆盖处理方式:guarantee为强制保留undo_retention时长的inactive状态的区
alter tablespace undotbs1 retention guarantee;
alter tablespace undotbs1 retention noguarantee;
2.图解一个事物的操作流程:
select xid, xidusn, xidslot, xidsqn, ubablk, ubafil
from v$transaction;
 
----
小结:
ITL中UBA指向data block的最后一个undo block地址,undo block之间指向,都是为了回滚操作;
Data block header 与Undo block的直接指向,为了构造cr块更快速;
ITL中XID指向undo segment header是为了多种提交方式。
 
一个事物开始之后,至少要在两个位置写入事物信息:
1.回滚段的段头块的事物表
2.要修改的数据块的头部事物槽的位置,找一个事物槽,将事物信息写上。
 
3.IMU机制
传统的undo,oracle将undo表空间和普通表空间同等对待。
而现在,有了IMU技术,事物开始以后,需要回滚块的时候不再需要从磁盘调取,直接在shared pool中IMU buffer中读取。
IMU大幅提高了构造cr块的速度,从而也提高了cr读的速度。
RAC和Stream环境中,IMU是被禁止掉的。
而且,IMU技术目前没有被Oracle大肆宣扬。
select * from v$sysstat where name like '%IMU%';
--上面sql查询的结果可以判断IMU是否开启,关注查询结果中IMU commits和IMU Flushes 的value,如果一直在增加,说明数据库开启了IMU技术。
 
4.读一致性
举个例子:
9:00开始查询一个1w条返回记录的表。
9:01其他用户删除了第1w条记录,并提交。
9:02查询结束,返回结果应该是1w条还是9999条?
 
按照之前所学的知识,可能就是9999条了,但是实际上oracle返回的是1w条记录,这也是根据业务实际要求的。
引入新的知识点:查询的时候会先对当前状态进行快照,记录一个当前scn,就是说之后查询过程中如果发现有块的scn号大于当前scn,就说明这个块在查询过程中被修改了。
 
ORA-01555
1.sql 执行的时间太长;
2.undo 表空间的压力太大;
3.undo 表空间大小的设定,取决于最长执行sql的时间,以及需要闪回的时段。然后根据这些具体的需求在em中undo表空间的建议图中根据时间找到对应的undo表空间应该设置为多大的参考值。

相克军_Oracle体系_随堂笔记012-undo的更多相关文章

  1. 相克军_Oracle体系_随堂笔记002-基础

    1.常见的Oracle生产库环境: 图2-1可以说是标准的生产库环境,处处体现了冗余,有效防止了单点故障.这就是HA(高可用) 而且冗在某种条件下还可以去掉,平常实现同时运行提供服务,如果一台坏掉,另 ...

  2. 相克军_Oracle体系_随堂笔记001-概述

    一.Oracle官方支持 1.在线官方文档 http://docs.oracle.com/ 2.metalink.oracle.com,如今已经改成:http://support.oracle.com ...

  3. 相克军_Oracle体系_随堂笔记003-体系概述

    1.进程结构图 对Oracle生产库来讲,服务器进程(可以简单理解是前台进程)的数量远远大于后台进程.因为一个用户进程对应了一个服务器进程. 而且后台进程一般出问题几率不大,所以学习重点也是服务器进程 ...

  4. 相克军_Oracle体系_随堂笔记004-shared pool

    本章主要阐述SGA中的shared pool. Shared pool { 1.free 2.library cache(缓存sql语句及其执行计划) 3.row cache(数据字典缓存) }   ...

  5. 相克军_Oracle体系_随堂笔记005-Database buffer cache

    本章主要阐述SGA中的Database buffer cache. Buffer cache { 1.pin (读写瞬间的状态) 2.clean 3.dirty 4.unused } --Databa ...

  6. 相克军_Oracle体系_随堂笔记006-日志原理

    简单来说,学习Oracle数据库就两个目标: 保证数据库数据的一致性: 提高数据库的性能(这个和日志没关系).   日志的功能:     只是保证数据库数据的一致性:   1.Oracle日志原理   ...

  7. 相克军_Oracle体系_随堂笔记007-PGA

    实际工作中,Oracle中有两个很重要:Server Process 和 PGA.   PGA内存作用和构成   1.PGA作用 2.PGA构成 1)private SQL area   2)Sess ...

  8. 相克军_Oracle体系_随堂笔记008-存储结构

    控制文件.数据文件.日志文件    放在存储上.   参数文件:数据库启动时读取,并不关闭,但是启动过后丢了也没事.一般放在服务器上. $ORACLE_HOME/dbs下   备份文件{     控制 ...

  9. 相克军_Oracle体系_随堂笔记009-检查点队列

    1.检查点队列 checkpoint queue RBA 日志块地址 redo block address LRBA 第一次被脏的地址 HRBA 最近一次被脏的地址 on disk rba 重做日志( ...

  10. 相克军_Oracle体系_随堂笔记010-SCN

    1.SCN的意义?system change number     时间    先后.新旧 select dbms_flashback.get_system_change_number, SCN_TO ...

随机推荐

  1. 解决word2013图片不能替换

    有时我们下好文档时,想要替换里面的图片,右键时却发现没有替换图片这个选项 这是应为此时我们的文档处于兼容模式,我们可以把它另存为.docx格式,这是再右键便可发现,多了一个替换图片选项.

  2. 如何设置mysql远程访问及防火墙设置

    笔者在一个实际的项目中需要MYSQL远程访问. 情景: 安装好Mysql, 本地访问正常,很奇怪局域的机器都无法访问该服务器上的MYSQL数据库. 经过资料查找 原来Mysql默认是不可以通过远程机器 ...

  3. 突破瓶颈,对比学习:Eclipse开发环境与VS开发环境的调试对比

    曾经看了不少Java和Android的相关知识,不过光看不练易失忆,所以,还是写点文字,除了加强下记忆,也证明我曾经学过~~~ 突破瓶颈,对比学习: 学习一门语言,开发环境很重,对于VS的方形线条开发 ...

  4. ubuntu-14.04.2-desktop使用方法

    一.安装VMware Tools 1. 在VMware Workstation11.1.0下安装Ubuntu镜像:ubuntukylin-14.04.2-desktop-amd64.iso 2. 点击 ...

  5. Paket 介绍

    在国外.NET社区有一个很火的话题是Packet(https://fsprojects.github.io/Paket/index.html ),它本质上是Nuget 之外的另一种方式管理.NET项目 ...

  6. DRY(Don't Repeat Yourself )原则

    凡是写过一些代码的程序猿都能够意识到应该避免重复的代码和逻辑.我们通过提取方法,提取抽象类等等措施来达到这一目的.我们总能时不时的听到类似这样的话:”把这些公用的类放到shared项目去,别的项目还要 ...

  7. SharpFileDB - a file database for small apps

    SharpFileDB - a file database for small apps 本文中文版在此处. I'm not an expert of database. Please feel fr ...

  8. Spark使用实例

    1.介绍 Spark是基于Hadoop的大数据处理框架,相比较MapReduce,Spark对数据的处理是在本地内存中进行,中间数据不需要落地,因此速度有很大的提升.而MapReduce在map阶段和 ...

  9. 摇钱树运营小工具UI设计.vsd

    去年,我负责公司的一个互联网投融资平台——摇钱树.系统运营过程中,业务和客服那边不断的反馈一些事情让技术这边协助实现.例如,土豪客户忘记登录密码后懒得自己重置,更愿意选择搭讪客服MM:再比如,客户多次 ...

  10. 支持向量机(SVM)复习总结

    摘要: 1.算法概述 2.算法推导 3.算法特性及优缺点 4.注意事项 5.实现和具体例子 6.适用场合 内容: 1.算法概述 其基本模型定义为特征空间上的间隔最大的线性分类器,即支持向量机的学习策略 ...