How manager undo tablespace

What is the undo data ?

事务在修改数据块时,oracle db会copy修改前的数据块到undo tablespace,这个数据块称之为undo data。

Why oracle db needs undo data ?

1.回滚未提交的事务

2.确保数据库一致性读

3.支持oracle flashback功能

What is the undo tablespace?

存放undo data的表空间称之为undo 表空间。undo tbs空间可以重复使用。

Undo Retention

oracle DB会强制保存uncommit事务产生的undo data在undo tablespace中不被覆盖,当undo tbs的可用空间不够使用时,被占用的空间可以使用原来占用的空间。

oracle db可能还会用到commit后的undo data为flash back feature, or lang queries提供服务。为了提高oracle db的可用性,可以设置undo retention period,保证undo data产生后的时间小于undo retention period 时间不被删除。

How aboat managing undo data?

Oracle db 默认情况下自动管理undo data 和 undo tablespace,当开启oracle flashback features,需要人为的为undo mesage优化,提高flashback features的可用性。

How to perform undo data and undo tablespace?

1.当undo tablespace设置为autoextending时,设置较小的undo retention

2.修改undo tablespace为固定值

默认下undo tablespace如果为autoextending, oracle db会自动优化undo retention值,使其适应db system中最长的查询所需要的保留时间。这种针对undo_retention的自动优化可能无法满足flashback对undo data的需求,如果将undo tablespace改为固定值,oracle db需要根据实际情况修改undo_retention

Why do oracle db need enough undo space?

1.DML会因为undo tablespace没有足够空间失败回滚

2.Long-query会因为undo tablespace没有足够空间

How to view undo tablespace information?

How to create undo tablespace?

CREATE SMALLFILE UNDO TABLESPACE "UNDOTBS2" DATAFILE ‘/u01/app/oracle/oradata/bjbd/undotbs201.dbf‘ SIZE 1024M AUTOEXTEND ON NEXT 1024K MAXSIZE UNLIMITED RETENTION NOGUARANTEE

时间: 2024-10-24 12:02:10

How manager undo tablespace的相关文章

Oracle Undo tablespace恢复(无备份)

Oracle Undo tablespace恢复 系统环境:   操作系统:RedHat EL55   Oracle:  Oracle 11gR2   Oracle 9i后,采用了undo tablespace管理undo数据,实现undo的自动管理,本案例演示了undo表空间被破坏后如何恢复:如果有备份,通过备份恢复非常容易,但在没有备份的情况下,就需要采用非常规手段来恢复了,呵呵. 1.案例应用环境 undo表空间undo segments: 14:34:44 [email protecte

Innodb独立的undo tablespace

[MySQL5.6] Innodb独立的undo tablespace 在MySQL5.6中开始支持把undo log分离到独立的表空间,并放到单独的文件目录下:这给我们部署不同IO类型的文件位置带来便利,对于并发写入型负载,我们可以把undo文件部署到单独的高速存储设备上. 1.使用 有几个参数来控制该行为 #innodb_undo_tablespaces 用于设定创建的undo表空间的个数,在Install db时初始化后,就再也不能被改动了: 默认值为0,表示不独立设置undo的table

undo tablespace RETENTION GUARANTEE

DBA_TABLESPACES中的RETENTION列说明: Undo tablespace retention: GUARANTEE---Tablespace is an undo tablespace with RETENTION specified as GUARANTEE A RETENTION value of GUARANTEE indicates that unexpired undo in all undo segments in the undo tablespace shou

UNDO TABLESPACE切换后,旧的长时间没有完全OFFLINE,案列:

案列: 由于生产库impdp导入一个分区表,期间出了问题,终止了导入,但是undo tablespace增长飞快增长到300G了,且经过两天才降下来,但是undo tablespace如果是自动扩展,只会扩展,当事务都结束了它自己也不会收缩的,所以只能手工去收缩. 于是创建一组新的undo tablespace,命名为undotbs2 alter system set undo_tablespace=undotbs2; 在线切换了undo tablespace; 手工切换完了但是还不能立即将旧的

InnoDB undo tablespace使用及原理

前言 Undo log是InnoDB MVCC事务特性的重要组成部分,对记录做了变更操作时会产生undo记录,默认存储到系统表空间中,但是从5.6开始,可以使用独立的undo表空间. Undo记录存储的是老版本数据,当一个旧事务需要读取数据时,为了能读取到老版本数据,需要顺着undo连找到满足其可见性的记录.当版本链很长时,可以认为这是要一个比较耗时的操作. 大多数对记录的变更insert.update.delete.Insert操作在事务提交前只对当前事务可见,因此产生的undo日志可以在事务

Managing the UNDO TABLESPACE

Every Oracle Database must have a method of maintaining information that is used to roll back, or undo, changes to the database. Such information consists of records of the actions of transactions, primarily before they are committed. These records a

浅析如何将undo log从tablespace分离

从MySQL5.6.3之后,MySQL支持将undo日志从tablespace(ibdataN)中独立开来放到单独的磁盘上.MySQL官方建议将undo放到ssd上,而把ibdata放在hd.(这里似乎有争论,国内某些大牛建议将顺序读写的log日志放在hdd) 比较重要的一个概念: 虽然undo log被分离出去了,但是其io处理还是在system tablespace内完成,所以定义上来讲还是算tablespace的.文档中原文如下: "Because these files handleI/

Undo管理

本篇文章中的内容来自ORACLE 11GR2版本的<Administrator's Guide>第16章,该章主要介绍了管理Undo表空间的相关知识.建议有英文基础的同学直接去看<Administrator's Guide>. 一.Undo记录的作用 1.事务未提交时的回滚: 2.恢复数据库 3.保证数据库的读一致性: 4.闪回查询.闪回事务.闪回表 二.自动回滚段管理(Automatic Undo Managent,简称为AUM) 1.在11g中,Oracle使用AUM作为管理U

【undo表空间的丢失-恢复-1】

使用rman进行恢复--undo丢失 restore 把文件还原回去: recover 利用日志文件重做: 关键性的文件丢失和非关键性的文件丢失(system/undo之外的丢失) 1> 删除undo文件: [[email protected] ~]$ rm /u01/oracle/oradata/jadl10g/undotbs01.dbf [[email protected] ~]$ sqlplus / as sysdba SQL*Plus: Release 10.2.0.5.0 - Prod