4 - Tablespace
4 - Tablespace
4 - Tablespace
fichiers de données
Vue d’ensemble : Tablespace
Base de données
●Rappel : tablespace :
- C’est une unité logique de stockage
Tablespace
- Chaque "tablespace" correspond à une
réservation d'espace dans la BD. Il contient un
Fichiers
ou plusieurs fichiers de données.
de données
3
Segment
● Segment : l’espace utilisé par une structure logique. Lors de sa création, Oracle
lui alloue un ou plusieurs extensions ( extent).
● Types de segments :
- segment de données = table
- segment d'index = index
- segment d'annulation = rollback segment, qui stocke l'image avant
modification des données
- segment temporaire , utilisé en interne par Oracle, si la zone mémoire de
tri est insuffisante
4
Extent
● Mode de gestion :
L’extent peut être gérer de deux façon :
- par le dictionnaire : les informations sur les extents libre et alloués sont
stockés dans des tables du dictionnaire
➔ pénalise les performances
5
Extent
6
6
Types de tablespace
● Une base de données possède toujours au minimum une tablespace SYTEME
et SYSEAUX (depuis version 10g) :
- Le tablespace SYSTEM :
utilisateurs
Ne doivent pas contenir de données
7
Types de tablespace
Des tablespace spécifiques (tablespaces permanentes) seront créés pour des données
utilisateurs (applicatives). Ils permettent :
8
Types de tablespace
● En version Oracle 10 :
- apparition de la notion de tablespace BIGFILE :
Elle est composé d’un seul fichier donnée qui peut être volumineux (2^32
blocs Oracle = 4 milliards de blocs)
10
Directives
- Créer au minimum :
* un tablespace temporaire (pour les segments temporaire)
* un tablespace pour les segments d’annulation (tablespace d’annulation)
* un tablespace pour les tables
* un tablespace pour les index
- Répartir les fichiers de données de ces tablespaces sur des disques différents
si possible
11
Statut de tablespace
12
Création d’un tablespace
13
13
Création d’un tablespace
14
14
Création d’un tablespace
AUTOALLOCATE : Indique que le tablespace est géré par le système (les utilisateurs ne peuvent pas définir
de taille d'extent)
UNIFORM : indique que le tablespace est géré à l'aide d’extensions (extents) d'une taille uniforme .
== > les extension ont une taille uniforme définie par la clause size. Si la clause SIZE n’est
pas spécifiée, la taille par défaut est 1Mo
15
Création d’un tablespace
16
16
Création d’un tablespace
Exemple :
1- avec gestion locale uniforme des extensions :
CREATE TABLESPACE data1
DATAFILE ‘C:\oracle\product\10.2.0\oradata\orcl\data010.dbf’ SIZE 500M
AUTOEXTEND ON NEXT 100M MAXSIZE 800M
EXTENT MANAGEMENT LOCAL UNIFORM SIZE 10 M
SEGMENT SPACE MANAGEMENT AUTO;
17
Création d’un tablespace
● Remarque : Dans le cas d’un tablespace géré localement avec une gestion
uniforme des extensions, les extensions doivent contenir au min cinq blocs
18
18
Tablespace permanent par défaut
19
Tablespace permanent par défaut
20
20
Tablespace permanent par défaut
21
Tablespace permanent par défaut
Exemple :
22
Etendre ou redimensionner un tablespace
23
Modifier la taille d'un fichier de données
Exemple :
ALTER DATABASE
DATAFILE ‘ C:\oracle\product\10.2.0\oradata\orcl\data02.dbf ‘ RESIZE 200M;
25
Ajouter des fichiers de données
à un tablespace
Syntaxe :
ALTER TABLESPACE nom
ADD DATAFILE spécification_fichier;
Exmeple :
ALTER TABLESPACE data
ADD DATAFILE ‘ C:\oracle\product\10.2.0\oradata\orcl\data02.dbf ‘SIZE 100M
AUTOEXTEND ON
NEXT 20M
MAXSIZE 500M
26
Renommer un tablespace
PS : on peut pas renommer les tablespace SYSTEM, SYSEAUX ainsi que les
tablespace OFFLINE
27
Tablespaces accessibles en lecture seule
ou lecture écriture
28
Mettre un tablespace hors ligne
30
Renommer de fichier de données : exemple
- Le fichier cible doit exister : renommer l’ancien fichier par une commande système
31
Renommer ou déplacer des fichiers de données
2- ALTER DATABASE
• Le tablespace doit être hors ligne ou la base en état MOUNT
• Les fichiers de données cible doivent exister.
• Syntaxe :
ALTER DATABASE
RENAME FILE ‘ancien nom'
TO ‘nouveau nom‘;
- Méthode 1 : base en état MOUNT - Méthode 2 : tablespace hors ligne
• Arrêtez la base • Mettez le tablespace hors ligne
• Utilisez la commande de système d'exploitation • Utilisez la commande de système
appropriée pour déplacer (ou renommer) les d'exploitation appropriée pour déplacer (ou
fichiers renommer) les fichiers
• Démarrez la base en mode MOUNT (STARTUP • Exécutez la commande ALTER DATABASE
MOUNT) • Repassez le tablespace en ligne
• Exécutez la commande ALTER DATABASE • Au besoin, utilisez la commande appropriée
• Ouvrez la base (alter database open;) du système d'exploitation pour supprimer le
• Au besoin, utilisez la commande appropriée du fichier.
système d'exploitation pour supprimer le fichier.
32
Renommer un fichiers de données : exemple
33
Supprimer un fichiers de données : exemple
Ajouter un fichier :
34
OFFLINE DROP
On fait un recover :
35
OFFLINE DROP
- On ne peut pas créer des objets dans un tablespace OFFLINE == > On passe le tablespace
ONLINE :
36
Supprimer un tablespace
● Syntaxe :
DROP TABLESPACE nom [INCLUDING CONTENTS [AND DATAFILES] CASCADE
CONSTRAINTS]];
Exemple :
DROP TABLESPACE data INCLUDING CONTENTS AND DATAFILES
● Pas de ROLLBACK, seule solution est de repartir de sauvegade
● Exemple :
CREATE TEMPORARY TABLESPACE temp
TEMPFILE ‘…/temp01.dbf' SIZE 500M
AUTOEXTEND ON NEXT 10M MIXESIZE 1G;
TEMPORARY : indique que le tablespace ne contiendra que des objets temporaires, tels
que les segments de tri implicite( créés par la clause ORDER BY par exemple).
38
Tablespace temporaire par défaut
● Un tablespace temporaire n’est réellement utilisé que s’il est affecté à un user.
● Le tablespace temporaire par défaut est affecté à tous les utilisateurs créés sans la
clause TEMPORARY TABLESPACE
● Possibilité de définir un tablespace temporaire par défaut :
1- soit à la création de la base de données :
2- soit après
39
Définir le tablespace TEMPORARY par défaut
40
40
Définir le tablespace TEMPORARY par défaut
exemple :
CREATE TEMPORARY TABLESPACE nomTemp
TEMPFILE ‘…/temp01.dbf' SIZE 500M
AUTOEXTEND ON NEXT 10M MIXESIZE 1G;
puis :
ALTER DATABASE
DEFAULT TEMPORARY TABLESPACE nomTemp;
41
Information sur le tablespace TEMPORARY par défaut
42
Restrictions relatives au tablespace TEMPORARY
par défaut
43
Trouver les informations sur les tablespaces et les fichiers de
données
2- v$TABLESPACE :
TS# : numéro du tablespace
NAME : nom du tablespace
BIGFILE : indique si le tablespace est un tablespace bigfile(YES ou NO)
44
Trouver les informations sur les tablespaces et les fichiers de
données (2)
45
Trouver les informations sur les tablespaces et les fichiers de
données (3)
Quelques colonnes :
TS# : num du tablespace auquel le fichier de donnée appartient
FILE# : identifiant du fichier
Name : nom du fichier de donnée
STATUS : statut du fichier (OFFLINE, ONLINE, SYSTEM ou RECOVER)
ENABLE : disponibilité du fichier (DISABLED, READ ONLY, READ WRITE)
BYTES : Taille du fichier en octets
CREATION_TIME : date de création
CHECKPOINT_CHANGE # : SCN du dernier checkpoint :
CHECKPOINT_TIME : date du dernier point de reprise
46
Trouver les informations sur les tablespaces et les fichiers de
données (3)
47
47
48
- Si on mit un tablespace offline tout les fichiers apprtenant sont offline
49
Supervision du stockage dans les tablespaces
50
Supervision du stockage dans les tablespaces
DBA_EXTENTS
OWNER Nom du propriétaire du segment au quel appartient l'extent
SEGEMENT_NAME nom du segemnt auquel appartient l'extent
SEGEMENT_TYPE type de segment
TABLESPACE_NAME nom de tablespace qui contient le segment
EXTENT_ID numéro de l'extent (0 pour le premier)
BLOCK_ID numéro du premier bloc de l'extenssion
BYTES taille de l'extensioon (extent) en octest
BLOCKS taille de l'extent en bloc Oracle
DBA_FREE_SPACE
TABLESPACE_NAME nom du tablespace qui contient l'extension (extent) libre
FILE_ID identifiant du fichier de données qui contient l'extent libre
BLOCK_ID numéro du premier block de l'extenssion libre
BYTES taille de l'extenssion libre en octets
BLOCKS taille de l'extenssion libre en blocs Oracle
51
Supervision du stockage dans les tablespaces
52
Supervision du stockage dans les tablespaces
53
Utilisation du Database Control
- Cliquer sur le lien ‘Administration’ sur la page d’accueil puis sur le line
‘Espace disque logique’ Utilisation du Database Control
54
Tablespace d'annulation (undo)
55
Segment d’annulation
56
Segment d’annulation
58
Configuration de la gestion automatique des informations d’annulation
- UNDO_RETENTION : la durée de rétention en second (valeur par défaut 900 s (15 min).
vous pouvez consulter la durée utilisée dans la colonne TUNED_UNDORETENTION
de la vue v$UNDOSTAT
59
Création de Tablespace d'annulation
● Le Tablespace d’annulation est créé au moment de la création de la base de données
ou après.
● Obligatoirement géré localement : Dans un tablespace d’annulation, des segments
sont automatiquement crées avec une gestion automatique des extensions (EXTENT
MANAGEMENT LOCAL AUTOALLOCATE)
Dans un tablespace d’annulation, des segments d’annulation sont automatiquement
créés et gérés par Oracle (et par lui seul).
● Les segments d’annulation sont nommées sous la forme _SYSSMUnn$, et
dimensionnés automatiquement en fonction des besoins.
● Création :
> à la création de la base : après la clause CREATE DATABASE
syntaxe :
CREATE DATABADSE …
…
[SMALLFILE | BIGFILE] UNDO TABLESPACE nom
DATAFILE spécification
> après la création de la base :
syntaxe :
CREATE [SMALLFILE|BIGFILLE] UNDO TABLESPACE nom
DATAFILE spécification
exemple : CREATE UNDO TABLESPACE undotest
DATAFILE ‘c:\undotest.dbf’ SIZE 100M
AUTOEXTEND ON NEXT 10M MAXSIZE 200M;
PS : on suppose que le type de tablespace par défaut est SMALLFILE 60
Information sur les tablespaces d’annulation
DBA_TABLESPACES, DBA_DATA_FILES,
DBA_FREE_SPACE, DBA_SEGMENTS, DBA_EXTENTS
61
Pour connaitre l’activité chaque segment d’annulation
62