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. js通过注册表找到本地软件安装路径并且执行

    场景:用js执行本地的安装软件,如果不存在就执行安装 操作步骤: 1.前台js代码 <script type="text/javascript"> function e ...

  2. win10调用局域网内xp系统上的打印机

    首先在xp系统上配置允许远程连接,然后设置账户密码,最后配置打印机,允许共享. 打开自己win10 ,win+R ,输入\\目标电脑ip\打印机名,确定,输入账户,密码. win+X - P-进入控制 ...

  3. 拯救无法启动的虚拟机文件.vmdk中的数据

    FROM: http://blog.csdn.net/npy_lp/article/details/7686583 从事Linux开发的软件工程师几乎都使用过虚拟机软件,如VMware worksta ...

  4. 《微软互联网信息服务(IIS) 最佳实践》已上市,欢迎选购!

    本书内容涵盖了IIS6.0~IIS 10.0 的全部主流IIS 版本,是多年微软技术支持经验的结晶.祝您顺利排除Web 服务器的疑难杂症! 本书由微软亚太区全球技术支持中心IIS 方面的顶尖专家金鑫作 ...

  5. ENode框架Conference案例分析系列之 - 事件溯源如何处理重构问题

    前言 本文可能对大多数不太了解ENode的朋友来说,理解起来比较费劲,这篇文章主要讲思路,而不是一上来就讲结果.我写文章,总是希望能把自己的思考过程尽量能表达出来,能让大家知道每一个设计背后的思考的东 ...

  6. [译]Asp.net MVC 之 Contorllers(二)

    URL路由模块 取代URL重写 路由请求 URL路由模块的内部结构 应用程序路由 URL模式和路由 定义应用程序路由 处理路由 路由处理程序 处理物理文件请求 防止路由定义的URL 属性路由 书接上回 ...

  7. 喜大普奔,微软Microsoft JDBC Driver For SQL Server已发布到maven中央仓库

    相信通过java和SQLServer开发应用的同学们都经历过如下类似的问题. 微软提供的JDBC官方驱动没有放置在Maven仓库中,这样如果你的Java应用需要访问SQL Server,你不得不下载s ...

  8. avascript中的this与函数讲解

    徐某某 一个半路出家的野生程序员 javascript中的this与函数讲解 前言 javascript中没有块级作用域(es6以前),javascript中作用域分为函数作用域和全局作用域.并且,大 ...

  9. SQL 2014 AlwaysOn 搭建

    AlwaysOn底层依然采用Windows 故障转移群集的机制进行监测和转移,因此也需要先建立Windows Cluster,只不过可用性组中的数据库不一定非要再存放在共享存储上了.可以是存储在本地磁 ...

  10. salesforce 零基础学习(五十一)使用 Salesforce.com SOAP API 实现用户登录以及简单的增删改查(JAVA访问salesforce)

    此篇请参看:https://resources.docs.salesforce.com/202/latest/en-us/sfdc/pdf/salesforce_developer_environme ...