Oracle Tablespace d’Annulation
(UNDO).
Oracle stocke temporairement les données en cours de modifications dans des segments d’annulations. Ces
segments d’annulations sont en attente de validation ou d’annulation (COMMIT ou
ROLLBACK).
Utile pour la notion de lecture cohérente des données pendant des opérations de mises à jour, pour la récupération de données (FLASHBACK) et le RECOVER.
La gestion des segments d’annulations est proposée en
automatique pour ce type de Tablespace UNDO (conseillé par Oracle)et anciennement appelés, ROLLBACK SEGMENT.
Ce Tablespace est créé au moment de la création de la base de données ou après et est obligatoirement géré localement.
Dans le fichier d’initialisation de la base (initSID.ora)
on précise le mode de gestion souhaité
UNDO_MANAGEMENT=AUTO
Le Tablespace UNDO par défaut (On peut en avoir
plusieurs)
UNDO_TABLESPACE= UNDOTBS
La durée de rétention (durée de conservation en secondes, 900 par défaut)
UNDO_RETENTION=900
Vous pouvez
voir ces valeurs avec cette requête
SQL> SELECT name, value, description
FROM V$PARAMETER
WHERE name LIKE '%undo%';
| NAME | VALUE | DESCRIPTION |
| undo_management | AUTO | instance runs in SMU mode if TRUE, else in RBU mode |
| undo_tablespace | UNDOTBS1 | use/switch undo tablespace |
| undo_retention | 900 | undo retention in seconds |
Création d’un Tablespace UNDO avec CREATE UNDO TABLESPACE
SQL> CREATE SMALLFILE UNDO TABLESPACE undotbs2
DATAFILE 'c:\oracle\oradata\dbtest\undotbs2_01.dbf' SIZE 5G
AUTOEXTENT ON NEXT 1G MAXSIZE 20G;
Ajouter des fichiers au Tablespace UNDO avec ALTER TABLESPACE
SQL> ALTER TABLESPACE undotbs2
ADD DATAFILE 'c:\oracle\oradata\dbtest\undotbs2_02.dbf' SIZE 5G
AUTOEXTENT ON NEXT 1G MAXSIZE 20G;
Changement de Tablespace
UNDO actif (si plusieurs) avec ALTER SYSTEM
SQL> ALTER SYSTEM SET UNDO_TABLESPACE
= undotbs2 SCOPE=BOTH;
Si vous changez de Tablespace
UNDO, et que des segments d’annulations sont utilisés dans des transactions, leurs états ne seront pas OFFLINE
mais PENDING OFFLINE jusqu'à la fin des transactions en cours.Vous pouvez ensuite le supprimer par exemple.
Supprimer un Tablespace
UNDO avec DROP TABLESPACE INCLUDING CONTENTS
SQL> DROP TABLESPACE undotbs2 INCLUDING CONTENTS AND DATAFILES;
| Liens en rapport avec l'article et qui sont susceptibles de vous intéresser |
|
• Create
TABLESPACE Oracle • Oracle Tablespace Temporaire (TEMPORARY) • Oracle Tablespace description |