Está en la página 1de 21

Administración I – Módulo 8

Objetivos

 Explicar el propósito de Undo


 Entender cómo generan Undo las
transacciones
 Administrar Undo
Segmentos de UNDO
Imagen antigua

Tabla

Imagen
nueva

Segmento de undo

Actualizar la transacción

Los segmentos de undo se utilizan para guardar


el valor antiguo antes de ser modificado
Propósitos del UNDO

Rollback de Lectura Consistente


transacciones

Recuperación de Segmento de undo Flashback Query,


transacciones Flashback Transaction
y Flashback Table
Transacciones y Segmentos de UNDO
• Cuando una transacción comienza se asigna
a un segmento de undo

• Durante la vida de la transacción los valores viejos son


copiados en el segmento de undo antes de modificarse

• Los segmentos de undo están compuestos de extents

• Se usan de manera circular, se agrandan y se achican


según se necesite, atienden a más de una transacción
por vez
Visualización de transacciones y Undo

 V$TRANSACTION
 V$ROLLSTAT
 DBA_ROLLBACK_SEGS
Tablespaces de UNDO
 Lossegmentos de undo se almacenan en un tablespac
de undo

 Se asigna un tablespace de undo a la instancia con espacio


suficiente para la carga de trabajo

 OracleServer mantiene automáticamente los datos segmentos


de undo en el tablespace
Tablespaces de UNDO
 Lossegmentos de undo se almacenan en un tablespac
de undo

 Se asigna un tablespace de undo a la instancia con espacio


suficiente para la carga de trabajo

 OracleServer mantiene automáticamente los datos segmentos


de undo en el tablespace
Parámetros para la gestión de Undo y
Retención
Hay 3 parámetros de incio que controlan
el UNDO:

 UNDO_MANAGEMENT
 UNDO_TABLESPACE
 UNDO_RETENTION
Parámetros UNDO_MANAGEMENT y
UNDO_TABLESPACE
 UNDO_MANAGEMENT: Especifica el mecanismo
que la base utiliza para manejar el undo
 AUTO: Oracle Server se encarga del administrar
segmentos de undo(DEFAULT)

 MANUAL: DBA debe crear y tunear los segments


rollback, solo se mantiene por compatibilidad co
versiones anteriores, no utilizarlo

 UNDO_TABLESPACE: Especifica el uso de un


tablespace UNDO determinado
Ejemplos de UNDO_MANAGEMENT y
UNDO_TABLESPACE

UNDO_MANAGEMENT=AUTO
UNDO_TABLESPACE=UNDOTBS
Ejercicios
Parámetro UNDO_RETENTION
 UNDO_RETENTION es el parámetro de inicio que
especifica en segundos cuanto tiempo debe ser retenida
la información de undo ya comitteada dentro de los
segmentos de undo

 La lectura consistente y las funcionalidades de Oracle


Flashback requieren que la info de undo se retenga lo más
posible antes de sobreescribirse

DBA
Categorías de Información de UNDO
 Activa: Información de undo de trans. no
committeadas, nunca es sobreescrita

 No expirada: Información de undo de trans.

ya comitteadas pero que aún no cumplieron


el período de retención

 Expirada: Información de undo de trans. ya


committeadas que cumplió el período de
retención, se sobreescribe si falta espacio
Como funciona el
UNDO_RETENTION
La info de undo expirada es sobreescrita en
caso de no haber más espacio en el tablespace
undo para nuevas trans, si con esto no alcanza:

 Tablespace de tamaño Fijo: pisará la info de


undo no expirada

 Tablespace con Autoextend: en lugar de pisar


lo no expirado se extenderá el tablespace
automáticamente para lograr la retención, si

su MAXSIZE no alcanza pisará lo no expirado


Garantizar la Retención de UNDO
 Es posible forzar la retención usando la cláusula
RETENTION GUARANTEE en la creación del
tablespace undo

Retención
garantizada:
15 minutos

Undo data en
tablespace Un transacción fallará
undo si el undo que genere
Sentencias SELECT
es mayor al espacio
que duren 15 minutes
disponible necesario
o menos se ejecutan
siempre con éxito que garantice la
retención
Creación de Tablespace de Undo
Hay 2 métodos para crear un tablespace de
undo

 Usar la cláusula UNDO TABLESPACE en la


sentencia CREATE DATABASE

 Usar la sentencia CREATE UNDO TABLESPACE


Sintáxis CREATE UNDO
TABLESPACE
Usar la sentencia CREATE UNDO TABLESPACE
para crear un tablespace de undo

CREATE UNDO TABLESPACE tablespace_name


DATAFILE datafile_name SIZE size
[ RETENTION NOGUARANTEE | GUARANTEE ] ;
Ejemplo de Creación de Tablespace Undo

CREATE UNDO TABLESPACE undotbs_02


DATAFILE '/u01/oracle/rbdb1/undo0201.dbf'
SIZE 500M AUTOEXTEND ON
RETENTION GUARANTEE;
Como modificar la Garantía de Retención
Usar la sentencia ALTER TABLESPACE para
modificar la garantía de retención

ALTER TABLESPACE tablespace_name


RETENTION [ GUARANTEE | NOGUARANTEE ] ;
Ejemplo de modificación de Garantía de
Retención

ALTER TABLESPACE undotbs_02


RETENTION NOGUARANTEE ;
Ejercicios

También podría gustarte