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. 快速定位性能瓶颈,检查出所有资源(CPU、内存、磁盘IO等)的利用率(utilization)、饱和度(saturation)和错误(error)度量,即USE方法

    命令:uptime说明:查看机器分别在1分钟.5分钟.15分钟的平均负载情况,显示的数字表示等待cpu资源的进程和阻塞在不可中断io进程的数量,如果1分钟的平均负载很高,而15分钟的平均负载很低,说明 ...

  2. mysql自动加入添加时间列

    `addtime` TIMESTAMP DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',

  3. 一步步学习javascript基础篇(1):基本概念

    一.数据类型 数据类型 基本数据类型(五种) Undefined Null Boolean Number String 复杂数据类型(一种) Object Undefined:只有一个值undefin ...

  4. 剑指Offer面试题:9.二进制中1的个数

    一.题目:二进制中1的个数 题目:请实现一个函数,输入一个整数,输出该数二进制表示中1的个数.例如把9表示成二进制是1001,有2位是1.因此如果输入9,该函数输出2. 二.可能引起死循环的解法 一个 ...

  5. 《HiWind企业快速开发框架实战》(0)目录及框架简介

    <HiWind企业快速开发框架实战>(0)目录及框架简介 本系列主要介绍一款企业管理系统快速开发框架,该框架旨在快速完成企业管理系统,并实现易维护可移植的目标. 使用逐个系统模块进行编码的 ...

  6. SQL Server 查询分解

    标签:SQL SERVER/MSSQL SERVER/数据库/DBA/查询步骤 概述 查询步骤是很基础也挺重要的一部分,但是我还是在周围发现有些人虽然会语法,但是对于其中的步骤不是很清楚,这里就来分解 ...

  7. GIS规划应用——基于哈夫模型的GIS服务区分析

    1.  GIS服务区分析 区位因素是商业分析中一个至关重要的因素,因此在商店选址时,例行的服务区分析十分重要.服务区是指顾客分布的主要区域,在其范围内该店的商品销售量或服务营业额超过其竞争对手.对于现 ...

  8. ASP.NET MVC 5 - 开始MVC5之旅

    本教程将使用Visual Studio 2013手把手教你构建一个入门的ASP.NET MVC5 Web应用程序.本教程配套的C#源码工程可通过如下网址下载:C#版本源码链接.同时,请查阅 Build ...

  9. 微冷的雨Java基础学习手记(一)

    使用Java理解程序逻辑 之凌波微步 船舶停靠在港湾是很安全的,但这不是造船的目的 北大青鸟五道口原玉明老师出品 1.学习方法: 01.找一本好书 初始阶段不适合,可以放到第二个阶段,看到知识点时,要 ...

  10. 微信小程序客服消息使用指南

    客服消息使用指南 为丰富小程序的服务能力,提高服务质量,微信为小程序提供客服消息能力,以便小程序用户可以方便快捷地与小程序服务提供方进行沟通. 功能介绍 用户可使用小程序客服消息功能,与小程序的客服人 ...