You are on page 1of 36

Cours Administration des bases de données

Enseignant : Malek ZRIBI


1

Chapitre 3 :
Gestion des tablespaces
Objectifs
2

▪ Définir le rôle des tablespaces et des fichiers


de données
▪ Créer et gérer des tablespaces et les fichiers de données
▪ Obtenir des informations sur les tablespaces
Généralités
3

▪ Une base de données est constituée d’une ou de plusieurs


unités logiques de stockage appelées tablespaces.
▪ Un tablespace est un espace logique qui contient les objets
stockés dans la base de données comme les tables ou les
indexes.
▪ Un tablespace est composé d'au moins un datafile, c'est à dire
un fichier de données qui est physiquement présent sur le serveur
à l'endroit exprimé lors de sa création.
▪ Chaque datafile est constitué logiquement de segments.
▪ Le segment est à son tour composé logiquement d’un ensemble
d’extensions (extent).
▪ Une extension est un ensemble contigu d’au moins 3 blocs de
données (l'élément le plus petit d'une base de données).
Structures de stockage
4

Structure logique Structure physique

Base de données

Fichier du système
Tablespace
d'exploitation

Segment

Extent

Bloc de Bloc du système


données Oracle d'exploitation
Structures de stockage
5
Mode de stockage des données d'une table
6

Colonnes Blocs
Table A
Table B

Lignes
Segment
Segment

Table
Tablespace

Morceau de ligne Extent


Anatomie d'un bloc de base de données
7

En-tête du bloc
Croissance
Espace libre

Données des lignes


Caractéristiques des tablespaces
8

▪ Les bases de données Oracle contiennent au minimum deux


tablespaces : system et sysaux qui stockent respectivement le
dictionnaire de données et les composants Oracle.
▪ Il est préférable de créer d’autres tablespaces pour intégrer
les données des utilisateurs.
▪ En plus de ces deux tablespaces, dans une base de données
Oracle on trouve le tablespace temporaire et le tablespace
d’annulation.
▪ Pour des raisons de sécurité ou de maintenance, un tablespace
peut être en état actif (online) ou inactif (offline).
▪ Un tablespace peut être en mode readonly ou readwrite qui
est l’état par défaut.
Les types de tablespaces
9

On distingue 3 types de tablespaces:


▪ les tablespaces permanents
▪ Les tablespaces temporaires
▪ Les tablespaces d’annulation (UNDO)

Un tablespace peut être de type smallfile ou bigfile.


▪ Un tablespace BIGFILE est un type particulier de tablespace qui
ne peut avoir qu’un seul fichier de données de très grande taille
pouvant atteindre 4 milliards de blocs.
▪ Un tablespace SMALLFILE est le tablespace traditionel de Oracle,
pouvant contenir jusqu’à 1022 datafiles ou tempfiles qui peuvent
être répartis sur plusieurs disques.
Création de Tablespace permanent
10

CREATE [BIGFILE /SMALLFILE] TABLESPACE nom_tablespace


[DATAFILE ‘chemin_physique_du fichier’]
[SIZE entier K/M/G/T] [REUSE]
[AUTOEXTEND OFF/ON [NEXT entier K/M/G/T]]
[MAXSIZE UNLIMITED/ entier K/M/G/T]
[EXTENT MANAGEMENT DICTIONARY/LOCAL
AUTOALLOCATE/UNIFORM]
[SEGMENT SPACE MANAGEMENT AUTO/MANUAL]
[BLOCSIZE integer K]
[LOGGING/NOLOGGING]
[FORCE LOGGING]
[ONLINE/OFFLINE]
[FLASHBACK ON/OFF]
[COMPRESS/NOCOMPRESS]
Création de Tablespace permanent
11

▪ SIZE : Définit la taille initiale du fichier en KO, MO, GO ou TO. Les


tailles TO sont utilisées uniquement pour les tablespaces bigfiles.
▪ REUSE : Permet d’écraser et réutiliser un fichier déjà existant.
▪ AUTOEXTEND : Indique que le fichier peut être étendu ou non en
cas où l’espace réservé est épuisé en utilisant les options ON et
OFF.
▪ NEXT : Indique la taille d’extension du fichier.
▪ MAXSIZE : La taille maximale peut être non limités grâce à l’option
UNLIMITED comme elle peut être limitée en précisant la taille.
Création de Tablespace permanent
12

▪ Exemple :
Extent management clause
13

LOCAL ou DICTIONARY : permet d'indiquer que le tablespace est géré


localement ou par dictionnaire

UNIFORM ou AUTOALLOCATE : permet d'indiquer que le tablespace


s'agrandit de manière uniforme (exprimé en taille d'extents) ou
automatiquement.
Extent management clause
14

▪ La gestion d’extension d’un tablespace peut être gérée soit


localement, soit par dictionnaire.
▪ Avec le dictionnaire, les informations relatives à l'allocation
d'espace sont stockées dans le dictionnaire de données. Une fois un
extent est alloué ou libéré, les tables appropriées dans le
dictionnaire de données seront mises à jour.
▪ Avec le mode local, mode par défaut de la base, les extents sont
gérés dans le tablespace par des bitmaps. Les valeurs des bitmaps
sont modifiées lorsqu’un extent est alloué ou libéré.
▪ Avec le mode local on peut utiliser l’option AUTOALLOCATE (option
par défaut) où la taille des extents est définie par le système. Alors
qu’avec l’option UNIFORM la taille des extents est définie en KO
ou en MO.
Segment management clause
15

AUTO : permet de laisser la base gérer l'espace libre

▪ Pour les tablespace gérées localement, on peut gérer l’espace de segment


manuellement ou d’une manière automatique.
▪ Avec le premier mode la gestion des espaces est effectuée via des listes
chaînées pour gérer les espaces libres d’un segment, alors que avec le mode
automatique le système utilise des bitmaps. Le mode automatique est défini par
défaut pour les tablespaces gérées localement.
Création de Tablespace permanent
16

▪ BLOCSIZE : Permet de définir la taille du bloc du tablespace à partir de cette


liste (2, 4, 8, 16 KO). Sinon la taille par défaut du block est définie par
DB_BLOCK_SIZE

▪ LOGGING/NOLOGGING :LOGGING est le mode par défaut de la base, il


permet d’enregistrer les opérations LMD (langage de manipulation des données)
dans le fichier journal, alors qu’avec le mode NOLOGGING, les opérations LMD
ne sont pas enregistrées dans le fichier journal.
▪ FORCE LOGGING : Cette option permet de garantir l’enregistrement des
opérations LMD dans le fichier journal.
Création de Tablespace permanent
17

▪ FLASHBACK ON/OFF : L’option FLASHBACK permet le retour en arrière de


l’état de la base à une date antérieure. Cette option permet la correction de la
base en cas d’erreur dans la manipulation des données, par contre ne corrige
pas les erreurs physiques engendrés par le système.
▪ COMPRESS/NOCOMPRESS : Si l’option COMPRESS est mentionnée lors de la
création d’un tablespace, toute table créée dans ce tablespace sera compressée
par défaut.
Modification de Tablespace
18
Modification de Tablespace (suite)
19

▪ COALESCE : permet de fusionner les extents libres contigüs.

BEGIN ou END BACKUP : permet d'indiquer le début ou la fin d'une


sauvegarde de base ouverte. Cette option n'est pas applicable aux
tablespaces temporaires ou en READ ONLY
▪ Mettre un tablespace en lecture seule:
SQL> Alter tablespace nom_tbs read only;
▪ Mettre un tablespace hors ligne:
SQL> Alter tablespace nom_tbs offline;
▪ Renommer un tablespace:
SQL> Alter tablespace nom_tbs rename to nouveau_nom;
Suppression de Tablespace
20

INCLUDING CONTENTS : permet de supprimer le contenu du tablespace. Si


cette option n'est pas précisée, il sera impossible de supprimmer un tablespace
contenant des objets.

AND DATAFILES: permet de supprimer également les fichiers, une trace est
alors inscrite dans le fichier des alertes pour chacun des fichiers supprimés.

CASCADE CONSTRAINTS: permet de supprimer les contraintes d'intégrité


référentielles vers des objets d'autres tablespaces et les contraintes unique du
tablespace supprimé.
Les Tablespaces temporaires
21

▪ Un tablespace temporaire est un tablespace spécifique aux


opérations de tri pour lesquelles la SORT_AREA_SIZE ne serait pas
suffisamment grande.

▪ Ce tablespace n'est pas destiné à accueillir des objets de la


base de données et son usage est réservé au système.

▪ Pour changer le tablespace par défaut du système :


ALTER DATABASE DEFAULT TEMPORARY TABLESPACE
tablespace_name;
Les Tablespaces temporaires
22
Les Tablespaces temporaires
23

Création de tablespace temporaire


Syntaxe simplifiée :
CREATE TEMPORARY TABLESPACE nom_tablespace
TEMPFILE emplacement SIZE taille REUSE
AUTOEXTEND on/off NEXT taille MAXSIZE taille;
Les Tablespaces temporaires
24

Tablespace temporaire par défaut:


Pour Connaître le tablespace temporaire par défaut on peut utiliser
la commande suivante :
Les Tablespaces temporaires
25

Vous pouvez changer le tablespace temporaire par défaut de votre


base de données avec la commande :
Les Tablespaces temporaires
26

Affichage des fichiers temporaires et de leurs tablespaces :


Les Tablespaces d’annulation
27

▪ Le Tablespace UNDO, comme son nom l'indique, est réservé


exclusivement à l'annulation des commandes LMD (UPDATE, INSERT,
DELETE).
▪ Lorsqu'on exécute l'ordre DELETE par exemple, Oracle commence
par copier les lignes à supprimer dans le tablespace UNDO et
ensuite indique que les blocs contenant les données dans le
tablespace d'origine sont libres.
▪ Un ROLLBACK permet de revenir en arrière, alors que COMMIT
supprimera les lignes du tablespace UNDO après une durée précisée
dans le paramètre undo_retention qui est par défaut 900.
▪ Pour changer le tablespace undo utilisé par le système:
ALTER SYSTEM set undo_tablespace = nom_undo_tablespace ;
Les Tablespaces d’annulation
28

SQL> show parameter undo


NAME TYPE VALUE
-------------------------------- ----------- ----------
undo_management string AUTO
undo_retention integer 900
undo_suppress_errors boolean FALSE
undo_tablespace string UNDOTBS1
▪ Pour modifier le paramètre undo retention:

SQL> Alter system set undo_retention = 3000;


Les Tablespaces d’annulation
29

Exemple de création de tablespace undo :


Create undo tablespace undotbs1
datafile ‘chemin\undotbs1.dbf’ size 5M;
Les Tablespaces d’annulation
30

Syntaxe simplifiée de création d’un tablespace d’annulation :

CREATE BIGFILE /SMALLFILE UNDO TABLESPACE nom_tablespace


[DATAFILE nom_fichier SIZE taille K/M/G/T]
[AUTO EXTEND ON /OFF NEXT taille K/M/G/T]
[MAXSIZE UNLIMITED/ taille K/M/G/T]
[RETENTION GUARANTEE/NOGUARENTEE]
Les Tablespaces d’annulation
31

▪ L’option RETENTION GUARANTEE indique que la conservation des


données dans les blocs undo est une condition nécessaire pour la
validation des transactions.
▪ En cas d’insuffisance d’espace de stockage dans les fichiers undo,
les transactions seront rejetées.
▪ Par contre l’option RETENTION NOGUARANTEE indique que les
transactions sont validées même si l’espace est insuffisant dans les
fichiers undo.
▪ Le stockage s’effectue dans les blocs undo déjà validés.
Afficher les informations relatives
aux tablespaces
32

Les informations relatives aux tablespaces et aux fichiers de


données peuvent aussi être obtenues via l'interrogation des vues
suivantes :
Informations relatives aux tablespaces :
DBA_TABLESPACES
V$TABLESPACE
Informations relatives aux fichiers de données :
DBA_DATA_FILES
V$DATAFILE
Informations relatives aux fichiers temporaires :
DBA_TEMP_FILES
V$TEMPFILE
Afficher les informations relatives
aux tablespaces
33
Afficher les informations relatives
aux tablespaces
34

Pour afficher les fichiers temporaires et leurs tablespaces utiliser


la commande suivante :
Extension de tablespaces
35

Vous pouvez étendre la base de données de différentes façons :


▪ En créant un tablespace
▪ En ajoutant un fichier de données à un tablespace existant
▪ En augmentant la taille d'un fichier de données
▪ En permettant la croissance dynamique d'un fichier
de données

Base de données

Tablespace Tablespace
SYSTEM INVENTORY
Extension de tablespaces
36

▪ modification de la taille d’un Datafile:


✓ Si le fichier est smallfile:

SQL>ALTER DATABASE DATAFILE ‘chemin\nomfichier.dbf’ resize


valeur K/M/G
✓ Si le fichier est de type Bigfile:

SQL>ALTER TABLESPACE nom_tablepace RESIZE valeur K/M/G


▪ Ajout d’un nouveau fichier à un tablespace:

SQL>Alter Tablespace nom_tablespace Add DATAFILE


‘chemin\nomfichier .dbf' size valeur K/M/G

You might also like