You are on page 1of 15

Instituto Profesional DuocUC

Escuela de Ingeniera

Tablespace de Undo

Jaime Amigo P. 2006, Santiago - Chile


Instituto Profesional DuocUC
Escuela de Ingeniera

Objetivos

Despus de completar esta leccin, debers saber lo


siguiente:
Monitorear y Administrar Undo
Configurar retencin Undo
Garantizar Retencin Undo
Uso de Undo Advisor

2
Instituto Profesional DuocUC
Escuela de Ingeniera

Undo Data

Datos de Undo es:


Una copia del original, premodificacin, datos
Capturado para cada transaccin que modifica datos
Retiene al menos hasta la ltima transaccin finalizada
Usado para soportar:
Operaciones de Rollback
Lectura consistente y flashback queries
Recuperacin desde transacciones fallidas

User

Undo Data
Oracle almacena los viejos valores (undo data) cuando un proceso modifica datos en una
base de datos. Almacena los datos existentes antes que sean modificados. Capturar undo
data permite a los usuarios modificar sus MINDS (roll back). Undo tambin soporta lecturas
consistentes y flashback queries.
Lecturas consistentes. Si se inicia una consulta, ningn cambio bajo las tablas bajo la
consulta, afecta los resultados de la misma. Oracle provee resultados consistentes con los
datos cada vez que se inicia una consulta. Para que una lectura consistente sea exitosa, la
informacin original debe an existir como informacin de undo. Mientras la informacin de
undo es retenida, Oracle puede reconstruir datos a una consulta satisfactoria de lectura
consistente.
Flashback queries fue instroducido en Oracle 9i. Permite al usuario ver como una tabla lucia
en un instante de tiempo. Dependiendo que tan atrs en el tiempo sea la consulta,
dependera el xito o no del flashback querie.
Undo data es usado tambin para recuperar transacciones fallidas. Una transaccin fallida
ocurre cuando una sesin de usuario finaliza anormalmente (errores de red o fallas en la
mquina cliente) antes que el usuario decida realizar una transaccin de commit o rollback.
Transacciones fallidas pueden suceder cuando hay un crash de la instancia.

3
Undo Data (continuacin)
En el caso que una transaccin falle, Oracle almacena todos los cambios realizados
por el usuario, recuperando los datos originales.
Informacin de Undo es retenida para todas las transacciones al menos hasta que la
ltima transaccin finaliza por:
Usuarios cambien su MIND (rolls back)
Usuarios finalizan una transaccin(commits)
Trmino anormal de sesiones de usuarios (rolls back)
Trmino normal de sesiones de usuarios con un exit (commits)
La informacin de Undo puede ser retenida dependiendo de la cantidad de actividad
en la base de datos y de la configuracin de la misma.
El monitoreo de un tablespace de undo es diferente al de otros tablespaces. El DBA
debe tener la certeza que dispone de suficiente espacio de undo para satisfacer todo
tipo de transacciones de usuarios. Existen mtodos para calcular la cantidad
adecuada de espacio de undo.

4
Instituto Profesional DuocUC
Escuela de Ingeniera

Transacciones y Undo Data


Vieja
imagen
Tabla

Nueva
Imagen

Undo segment

Cada transaccin esta asignado a


solo un segmento de undo.
Un segmento de undo puede servir a
ms de una transaccin a la vez.
Transaccin
de Update

Transacciones y Undo Data


Cuando se inicia una transaccin, sta es asignada a un segmento de undo. A travs
de la vida de la transaccin, cualquier cambio hecho durante la transaccin, copiara
los valores de los datos cambiados al segmento de undo. Puede ver cules
transacciones son asignadas al segmento de undo a travs de la vista dinmica de
rendimiento v$transaction.
Los segmentos son segmentos especializados, que son automticamente creados
por la instancia cuando necesita soporte de transacciones. Como todos los
segmentos, los segmentos de undo estn construidos de extents que consisten de
bloques de datos. Los segmentos de undo crecen automticamente, actan como un
buffer de almacenamiento circular para ser asignado a transacciones.
Las transacciones llenan extens en los extents de segmentos de undo hasta que esta
se completa o bin, todo el espacio es consumido. Si un extent se llena y se requiere
ms espacio, la transaccin solicitar espacio al siguiente extent en el segmento.
Una vez que todos los extents han sido consumidos, la transaccin regresa al primer
extent (sobreescribe data de undo si es necesario) o se asigna un nuevo extent al
segmento de undo (si es incapaz de reciclarse, porque la informacin de undo del
primer extents aun es requerida).

5
Instituto Profesional DuocUC
Escuela de Ingeniera

Almacenando informacin de Undo

La informacin de undo es almacenado en segmento de


undo, los cuales estan almacenados en el tablespace de
undo. Un tablespace de undo:
Son solo usado para segmentos de undo
Tienen condiciones especiales de recuperacin
Pueden ser asociados solo con una instancia single y
una instancia puede solamente tener un tablespace
de undo activo a la vez

Almacenando Informacin de Undo


Los segmentos de Undo puede existir solo en segmentos especializados en forma de
tablespace llamados tablespace de undo. Si bien una base de datos puede tener
varios segmentos de undo, una instancia puede tener abierto solo uno.
Los segmentos de undo tiene un tipo de segmento TYPE 2 UNDO y siempre son
propiedad del usuario SYS. Dado que los segmentos de undo actuan como un buffer
circular, cada segmento tendr un mnimo de dos extents. El nmero mximo de
extents por defecto depende del tamao del bloque de base de datos (32,765 para
un tamao de bloques de 8K).
El tablespace de undo es permanente, administrado localmente con asignacin
automtica de extents. Son administrados como cualquier otro tablespace con la
excepcin de recovery. Dado que la data de undo es requerida para recuperar
transacciones fallidas (como las que ocurren cuando hay una cada de la instancia),
el tablespace de un puede ser recuerado solo mientras la instancia esta en estado
MOUNT.

6
Instituto Profesional DuocUC
Escuela de Ingeniera

Monitoreando Undo

Undo normalmente requiere una pequea administracin.


Las reas a monitorear incluyen:
Espacio libre en el tablespace de Undo
Errores Snapshot too old

DBA

Monitoreando Undo
La mayoria del tiempo undo es administrado automaticamente por la instancia con una
pequea intervencin por parte del DBA. Algunas cosas que pueden requerir intervencin
del administrador incluyen:
Insuficiente espacio para undo
Usuarios reciben el mensaje de error ORA-01555 snapshot too old
La informacin de undo siempre es retenida hasta que finaliza la transaccin. Esto significa
que si una cantidad extremadamente grande de datos son borrados o modificados
(operaciones de insert consume mucho menos espacio de undo porque la imagien original
del dato insertado es un valor nulo) sin confirmaciones (commit) periodicas de los cambios,
el tablespace de undo lo suficientemente grande para contener los datos originales. Suponga
un caso donde una table de 50 GB tiene que borrar todas las filas con el comando:
SQL> DELETE FROM reallybigtable;
El tablespace de undo podra requerir hacer espacio para los 50 GB originales de
informacin solo en caso que le usuario que ekl usuario que dio origen a la sentencia
deseara deshacerla a traves de un rollback. Cuando el tablespace de undo es sobrecedido,
el usuario recibe un mensaje de error: ORA-01650: unable to extend rollback segment

7
Monitoreando Undo (continuacin)
Otro psoible problema que el administrador puede encontrar con la informacin de
undo ocurre cuando una consulta necesita acceder informacin que ya ha sido
sobreescrita en undo. Esto puede suceder en la ejecucin de largas consultas de
flashback. Cuando una consulta necesita un snapshot (foto) de datos de cierto
instante de tiempo en el pasado y la reconstruccin del snapshot requiere data de
undo que no existe, la consulta retorna el siguiente error:
ORA-01555: snapshot too old

8
Instituto Profesional DuocUC
Escuela de Ingeniera

Administrando Undo
La Administration de undo debe incluir prevenir:
Errores de espacio en tablespace de Undo
Dimensione adecuadamente el tablespace de undo
Asegure grandes transacciones con commit periodicos
Errores de Snapshot too old
Configure un apropiado intervalo de retencin de undo
Dimensione adecuadamente el tablespace de undo
Considere garantizar retencin de undo

UNDO_MANAGEMENT=AUTO
UNDO_TABLESPACE=UNDOTBS1
DBA

Administrando Undo
Oracle 10g recomienda usar adminsitracin automtica de undo, configurando el
parmetro de inicializacin UNDO_MANAGEMENT dejandolo en AUTO. La
administracin manual es soportada para compatibilidad de versiones anteriores,
pero requiere de una gran intervencin del DBA.
Con administracin automtica de undo, el DBA administra undo a nivel de
tablespace. Para controlar el tablespace de undo, una instancia use el parmetro de
inicializacin UNDO_TABLESPACE. Despus de haber seleccionado el tablespace
de undo, el administrador necesita solamente proveer el espacio necesario y
configurar el intervalo de retencin de undo.
Con la administracin manual el DBA debe considerar:
Dimensionar segmentos incluyendo el mximo de extents y su tamao
Identificar y eliminar las transacciones bloqueadas
Crear suficientes segmentos de rollback (en modo manual los segmentos de
undo son conocidos como segmentos de rollback o rollback segments) para
manejar transacciones
Seleccionar un tablespace para conteneer los segmentos de rollback (el
tablespace solo es usado con administracin automtica de undo)

9
Instituto Profesional DuocUC
Escuela de Ingeniera

Configurando Retencin de Undo

La retencin de undo especifica en segundos la cantidad


de informacin de undo confirmada a retener.
El valor por default es 0 (automtica).
Mximo valor es 232 segundos (ms que 187 aos).
Un seteo a 0 indica modo de retencin automtica de
undo.

UNDO_RETENTION=0

DBA

Configurando Retencin de Undo


La retencin de undo es configurada con el parmetro de inicializacin
UNDO_RETENTION. Este prmetro setea el tiempo en la cual la informacin de
undo expira y pued ser sobrescrita.
Administracin automtica de undo procurar retener informacin de undo hasta que
expire, pero si una transaccin activa necesita espacio en el tablespace de undo, la
informacin confirmada (no vencida) ser sobrescrita sin importar los seteos de
retencin de undo que pueden hagan fallar la transaccin.
Un seteo de retencn de undo a 0 signfica que la retencin ser automtica. En este
modo la instancia retiene tanta informacin como sea necesaria para satisfacer la
consulta mas grande en ejecucin. Si el tablespace de undo es muy pequeo para
satisfacer las consulta mas grande en ejecucin, la retencin automtica de undo
retiene tanto undo como sea posible usando el espacio disponible (sin extender el
undo de los datafiles) a menos que la cantidad de informacin retenida este por
debajo de los 900 (15 minutos). La retencin automtica mantiene al menos 15
minutos de informacin de undo permitiendo un pequeo espacio a un error.

10
Configurando Retencin de Undo (Continuacin)
La informacin de undo esta dividad en 3 categorias:
Uncommitted undo information: Soporta transacciones en ejecucin y es
requerido si un usuario desae hacer un rollback o si la transaccin falla.
Uncommitted undo information nunca es sobrescrita.
Committed undo information: No es requerida para apoyar la transaccin en
ejecucin, pero es necesaria para satisfacer el intervalo de retencin de undo.
Tambin es conocida como informacin de undo no vencida. La informacin de
undo confirmada es retenida tanto como sea posible sin que una transaccin
activa falle por carencia de espacio.
Expired undo information: No es necesaria para apoyar transacciones en
ejecucin. Es sobreescrita cuando se requiere espacio por una transaccin
activa.

11
Instituto Profesional DuocUC
Escuela de Ingeniera

Garantizando Retencin de Undo


Informacin de undo confirmada ser sobrescrita cuando
transacciones fallen por falta de espacio a menos que la
retencin de undo este garantizada.

SQL> ALTER TABLESPACE undotbs1 RETENTION


GUARANTEE;
Tablespace altered.

SQL> SELECT contents, retention


2 FROM dba_tablespaces
3 WHERE TABLESPACE_NAME='UNDOTBS1';
CONTENTS RETENTION
--------- -----------
UNDO GUARANTEE

Garantizando Retencin de Undo


Por defecto el comportamiento de undo sobrescribe transacciones confirmadas que
aun no han expirado si la trasanccin activa falla por falta de espacio de undo. Este
comportamiento puede ser modificado para garantizar retencin.
Con retencin garantizada, los seteos de retencin de undo se hacen cumplir aunque
ellas causen transacciones fallidas.
RETENTION GUARANTEE es una cualidad de un tablespace ms que un parmetro
de inicializacin. Este atributo puede ser cambiado solo a travs de comandos SQL.
La sintxis para cambiar la retencin garantizada de un tablespace de undo se
muestra en la figura. El comando SQL es el siguiente:
SQL> ALTER TABLESPACE undotbs1 RETENTION NOGUARANTEE;
La retencin garantizada se aplica solo a tablespace de undo. Al tratar de setear
dicha retencin a un tablespace que no es de undo, dara el siguiente resultado:
SQL> ALTER TABLESPACE example RETENTION GUARANTEE;
ERROR at line 1:
ORA-30044: 'Retention' can only specified for undo tablespace

12
Instituto Profesional DuocUC
Escuela de Ingeniera

Dimensionando el Tablespace de Undo

Tamao Actual
del
Tablespace

Rango de
Consumo de Undo

Dimensionando el Tablespace de Undo


El tablespace de undo debe ser dimensionando de manera que contenga la
informacin original para todas las transacciones. Haciendo click en el link de Undo
Management sobre Enterprise Manager en la pgina de Administracin muestra un
resumen del sistema de undo incluyendo actual configuracin, consumo de undo por
minuto y el tiempo de duracin de la consulta mas grande durante un periodo de
tiempo dado
Los datafiles que pertenecen a un tablespace de undo pueden ser automticamente
extendidos cuando ellos requieren ms espacio libre. A diferencia de otros
tablespace, Oraclre comienda que los datafiles asociados con tablespace de undo no
tengan habilitada extensin automtica. Cuando se determinan los requerimientos de
espacio de undo, usted puede habilitar extensin automtica de los datafile, pero
despues que el tamao esta adecuadamente dimensionado, se recomienda
deshabilitarlo. Al deshabilitar la extensin automtica de los datafile de un tablespace
de uno se previene que un usuario consuma una gran cantidad de espacio debido a
transacciones no confirmadas (sin commit).

13
Instituto Profesional DuocUC
Escuela de Ingeniera

Usando el Asesor de Undo

Usando el Asesor de Undo (Undo Advisor)


El Undo Advisor es accesado desde la pgina Undo Management. Esto entrega una
estimacin del tamao requerido por el tablspace de undo para satisfacer una
retencin de undo dada.
Ingrese el periodo de retencin deseado y haga click en el botn Update Analysis
and Graph. La seccin de anlisis del asesor, displiega el tamao requerido del
tablespace para el periodo de retencin deseado.
Tambin puede hacer un click en un punto del grfico para ver el tamao requerido
para soportar el perodo seleccionado.
Despus de seleccionar el periodo de retencin de uno, haga click en OK para
implementar el nuevo perodo de retencin.

14
Instituto Profesional DuocUC
Escuela de Ingeniera

Fin de la Leccin

Jaime Amigo P. 2006, Santiago - Chile

You might also like