Vous êtes sur la page 1sur 20

Administration Oracle

Gestion des Tablespaces


Permanent
Temporaire
Undo
Définition
• Un tablespace est une unité logique de stockage composée d’un ou plusieurs
fichiers physiques (fichiers de données). Il est composé des éléments suivants:
• Fichiers de données (datafile) : Ce sont des fichiers physiques sur le disque où les
données réelles sont stockées. Chaque tablespace a au moins un fichier de
données, mais il peut en avoir plusieurs.
• Segments : Les segments sont des structures logiques qui occupent de l'espace
dans un tablespace. Il existe différents types de segments, tels que les segments
de tables, d'index, de partitions, de clusters, etc.
• Extent : Les extents sont des blocs de stockage logique qui sont alloués aux
segments.
• Blocks : Les blocs sont les plus petites unités de stockage dans un tablespace. Un
bloc est généralement de taille fixe (8 Ko par défaut dans Oracle).
Principe de stockage dans un Tablespace
1. Lorsqu’un segment est créé dans un tablespace, Oracle lui alloue une
(ou plusieurs) extension(s) dans un des fichiers de données du
tablespace.
2. Lorsque l’espace initialement alloué est plein (suite à l’insertion de
données par exemple), Oracle alloue une nouvelle extension au
segment, et ainsi de suite. Toutes les extensions allouées à un segment
sont dans le tablespace de création du segment, mais pas forcément
côte à côte, ni forcément dans le même fichier de données (si le
tablespace est composé de plusieurs fichiers de données).
3. Lorsqu’un segment est supprimé, les extensions qu’il occupe sont
libérées et rendues disponibles pour d’autres segments.
Types de tablespace
• Tablespace Permanent : utilisé pour stocker des données de manière permanente, telles
que des tables, des index, des vues matérialisées, etc. Les données stockées dans un
tablespace permanent restent persistantes même après la fin de la session utilisateur ou
le redémarrage du système.
• Tablespace Temporaire : utilisé pour stocker des données de manière temporaire, telles
que les résultats intermédiaires des requêtes, les opérations de tri et les opérations de
jointure. Les données stockées dans un tablespace temporaire sont généralement des
données temporaires qui sont nécessaires pour la durée d'une session utilisateur ou
d'une transaction. Les données dans un tablespace temporaire sont automatiquement
effacées à la fin de la session ou de la transaction qui les a créées.
• Tablespace undo (Undo Tablespace) : utilisés pour stocker les informations d'annulation
nécessaires pour gérer les transactions dans Oracle. Ils sont utilisés pour gérer les
opérations d'annulation et de restauration des transactions.
Créer un tablespace Permanent

CREATE [ BIGFILE | SMALLFILE ] TABLESPACE nomTbs


DATAFILE ‘chemin+nom fichier.dbf’ SIZE integer[K|M]

[Autoextend ON NEXT integer[K|M] MAXSIZE integer[K|M]]

[EXTENT MANAGEMENT [DICTIONARY|LOCAL] ]


Gestion des extensions
Locale vs Dictionnaire
• Tablespaces locaux (Locally Managed Tablespaces) : l'allocation et la
gestion de l'espace se font localement, au niveau du tablespace lui-même.
Dans un tablespace local, les informations sur l'allocation des blocs et la
gestion de l'espace sont stockées dans la tablespace elle-même, ce qui
signifie qu'elles sont gérées de manière autonome et indépendante de la
base de données globale.

• Tablespaces dictionnaires (Dictionary Managed Tablespaces) : l'allocation


et la gestion de l'espace sont contrôlées par le dictionnaire de données de
la base de données Oracle. Dans un tablespace dictionnaire, les
informations sur l'allocation des blocs et la gestion de l'espace sont
stockées dans les tables du dictionnaire de données de la base de
données, ce qui signifie qu'elles sont centralisées au niveau de la base de
données.
Remarques
• On ne peut pas créer un tablespace géré par le dictionnaire si le
tablespace
• « SYSTEM » est géré localement.

• La gestion par le dictionnaire à été délaissée par Oracle dans


les nouvelles versions.
La gestion des extensions
(pour les tablespaces gérés localement)
Allocation_type

SYSTEM UNIFORM
Taille des extensions
est déterminée Taille des extensions est fixée
automatiquement par par l’utilisateur lors de la
Oracle création du Tablespace.

CREATE TABLESPACE tbs_local_auto CREATE TABLESPACE tbs_local_uniform


DATAFILE ’C:\disk1\tbs_local_auto.dbf’ SIZE 10M DATAFILE ’C:\disk1\tbs_local_uniform.dbf’ SIZE 10M
EXTENT MANAGEMENT LOCAL AUTOALLOCATE; EXTENT MANAGEMENT LOCAL UNIFORM SIZE 5M;
La gestion des extensions
(allocation_type)
Remarques
• Il n’est pas possible de modifier le mode de gestion des
extensions après la création du tablespace:

• Pour ce faire, il faut recréer le tablespace puis importer l’ancien


contenu.
Tablespace temporaire
CREATE [ BIGFILE | SMALLFILE ] TEMPORARY TABLESPACE
nomTbs
TEMPFILE ‘chemin+nom_fichier.dbf’ SIZE integer[K|M]
[Autoextend [ON|OFF] Next integer MAXSIZE integer[K|M]]
[,…]
[EXTENT MANAGEMENT [DICTIONARY|LOCAL] ]
Comment définir unTablespace temporaire ?
Afficher les informations sur
les Tablespaces temporaires
Les tablespace Undo

CREATE UNDO TABLESPACE nom_du_tablespace


DATAFILE 'chemin_vers_fichier_de_donnees' SIZE taille_en_M ou G
AUTOEXTEND ON NEXT taille_autoextend;
Modification des tablespaces
1. Ajouter un fichier de données (datafile) :

ALTER TABLESPACE nom_du_tablespace


ADD DATAFILE 'chemin_vers_nouveau_fichier_de_donnees' SIZE
taille_en_M ou G;

2. Modifier la taille d'un fichier de données existant :

ALTER DATABASE DATAFILE 'chemin_vers_fichier_de_donnees' RESIZE


nouvelle_taille;
Modification des tablespaces
3. Pour activer l'extension automatique :

ALTER DATABASE DATAFILE 'chemin_vers_fichier_de_donnees'


AUTOEXTEND ON;

4. Pour désactiver l'extension automatique :

ALTER DATABASE DATAFILE 'chemin_vers_fichier_de_donnees'


AUTOEXTEND OFF;
Modification des tablespaces
5. Changer l'emplacement d'un fichier de données :

ALTER DATABASE RENAME FILE 'ancien_chemin_vers_fichier' TO


'nouveau_chemin_vers_fichier';

6. Changer le mode de gestion des extensions (local ou dictionary) :

ALTER TABLESPACE nom_du_tablespace [EXTENT MANAGEMENT { LOCAL |


DICTIONARY }];

7. Modifier la taille d'extension automatique :

ALTER DATABASE DATAFILE 'chemin_vers_fichier_de_donnees' AUTOEXTEND ON


NEXT nouvelle_taille_autoextend;
Informations sur les tablespaces
• DBA_TABLESPACES : Cette vue affiche des informations sur tous les tablespaces de la
base de données. Elle est accessible par les utilisateurs disposant des privilèges
appropriés.
• USER_TABLESPACES : Cette vue affiche des informations sur les tablespaces
accessibles par l'utilisateur connecté.
• ALL_TABLESPACES : Cette vue affiche des informations sur tous les tablespaces
accessibles par l'utilisateur connecté, ainsi que ceux qui sont partagés par d'autres
utilisateurs.
• DBA_DATA_FILES : Cette vue affiche des informations sur tous les fichiers de données
(datafiles) associés aux tablespaces de la base de données.
• DBA_TEMP_FILES : Cette vue affiche des informations sur tous les fichiers temporaires
associés aux tablespaces temporaires de la base de données.
• DBA_FREE_SPACE : Cette vue affiche des informations sur l'espace libre disponible
dans chaque tablespace de la base de données.

Vous aimerez peut-être aussi