Il existe différents types de tablespaces spéciaux…
Tablespaces en lecture seule (READ ONLY tablespaces)
Ces tablespaces sont utilisés (on s’en serait douté) en lecture seule. Ils permettent de stocker des données statiques (ou variant très peu souvent, éventuellement sur des CDROMS, et ne rentrent pas en ligne de compte dans les sauvegardes / restaurations.
Pour modifier les données d’un Tablespace READ ONLY il est évidemment obligatoire de modifier préalablement son statut.
SQL> ALTER TABLESPACE toto READ ONLY;
SQL> ALTER TABLESPACE toto READ WRITE;
Tablespaces temporaires (temporary tablespaces)
Ces tablespaces apparus avec la 9i remplacent les segments temporaires placés précédemment dans des tablespaces standards.
On peut (et doit) créer un tablespace temporaire par défaut autre que SYSTEM, où seront stockées toutes les données temporaires (utilisées lors des tris, création d’index, jointures, etc). Ils sont définis lors de la création de la base :
SQL> CREATE DATABASE ma_base…
DEFAULT TEMPORARY TABLESPACE mon_temp;
ou a posteriori :
SQL> ALTER DATABASE DEFAULT TEMPORARY TABLESPACE tempts2;
En plus de ce tablespace temporaire par défaut, chaque utilisateur peut se voir assigner un tablespace temporaire particulier
SQL> CREATE TEMPORARY TABLESPACE mon_temp TEMPFILE ‘/oracle/data/temp01.dbf’
SIZE 20M
EXTENT MANAGEMENT LOCAL UNIFORM SIZE 10M
SQL> CREATE USER toto
IDENTIFIED BY tutu
DEFAULT TABLESPACE data
QUOTA 100M ON data
TEMPORARY TABLESPACE temp_ts
Voir les vues dynamiques V$TEMP_EXTENT_MAP et V$TEMP_SPACE_HEADER pour des infos précises sur l’utilisation en temps réel de ces tablespaces.
Tablespace d’annulation (undo tablespaces)
Les UNDO tablespaces sont exclusivement réservés au stockage de segments d’images avant modification des données pour des annulations éventuelles (ROLLBACK).
Dans les versions précédentes d’Oracle, ces structures n’existaient pas et on utilisait des ROLLBACK SEGMENTS implantables dans n’importe quel tablespace. Oracle peut désormais fonctionner avec des UNDO tablespaces (gestion Automatique, préconisée) ou avec des rollback segments (gestion manuelle)
Paramètres de l’INIT.ORA associés
UNDO MANAGEMENT AUTO | MANUAL
utiliser les UNDO tbs ou les rollback segments
UNDO TABLESPACE nom tablespace
précise le tablespace d’UNDO à utiliser par la base
UNDO_SUPPRESS_ERRORS TRUE | FALSE
évite les erreurs lorsque l’on tente d’utiliser explicitement les Rollback Segments (ALTER ROLLBACK…, SET TRANSACTION USE ROLLBACK…) alors que la base utilise des UNDO tbs
SQL > CREATE UNDO TABLESPACE undo_1
ou dès la creation de la base
SQL> CREATE DATABASE test…
UNDO TABLESPACE undo_1
DATAFILE ‘/tmp/undo1.dbf’ SIZE 10M AUTOEXTEND ON
Tablespaces BIGFILE
Ces tablespaces comme leur nom le laisse supposer sont réservés aux bases très volumineuses.
Il contiennent un fichier UNIQUE dont la taille peut atteindre jusqu’à 4 milliards de blocs, soit pour pour un bloc minimum de 2KO, une taille respectable de 8TO!
Le type de tablespace par défaut SMALLFILE ou BIGFILE peutt être spécifié pour toute la base à la création ou par une commade ‘ALTER DATABASE’
SQL> CREATE BIGFILE TABLESPACE gulliver
DATAFILE ‘/oracle/data/gulliver1.dbf’ SIZE 100GO;
note : si toutes les données sont sur un seul disque on aura tout intérêt à ce que ce dernier soit ’strippé’