Les Tablespaces

Les tablespaces sont des espaces disques réservés au stockage des données. Chaque tablespace est constitué d'au moins un datafile : fichier de données, créé sur un disque.
Pour créer un tablespace :
 
Sélectionnez
CREATE TABLESPACE ora_data
DATAFILE 'g:\oracle\oradata\orafrance\ORA_DATA01.dbf' size 100M,
         'g:\oracle\oradata\orafrance\ORA_DATA02.dbf' size 100M
MINIMUM EXTENT 500K (uniquement V8)
DEFAULT STORAGE (initial 500K next 500K MAXEXTENTS 500 PCTINCREASE 0);
Paramètres de création :
  • DATAFILE Liste des fichiers de données.
  • MINIMUM EXTENT Permet de s'assurer que chaque taille d'extent utilisé dans le tablespace est
  • un multiple de l'entier.
  • ONLINE Rend le tablespace disponible à l'utilisation immédiatement après sa création.
  • OFFLINE Crée le tablespace mais le laisse indisponible.
  • PERMANENT Spécifie que le tablespace contient des objets permanents.
  • TEMPORARY Permet de spécifier que les objets sont de types temporaire.
  • DEFAULT STORAGE Paramètres de stockage de tous les objets dans le tablespace.
Paramètres de stockage (DEFAULT STORAGE) :
  • INITIAL Définit la taille du premier extent (Par défaut : 5*DB_BLOCK_SIZE).
  • NEXT Se rapporte à la taille de l'extent suivant.
  • MINEXTENTS Est le nombre d'extents alloués lors de la création du segment (Par défault 1).
  • PCTINCREASE Pourcentage de croissance de la taille de l'extent, le n-iéme next est alors égale à next*(1+(pctincrease/100))e(n-2).
    Par exemple : si le initial est à 16k et le pctincrease à 10, le deuxiéme extent sera à 16k,
    le suivant de 18k (=16+10%),le suivant à 20k (=18+10%), etc…
Pour ajouter un fichier à un tablespace :
 
Sélectionnez
ALTER TABLESPACE ora_data ADD DATAFILE 'g:\oracle\oradata\orafrance\ORA_DATA03.dbf' SIZE 200M;
Pour activer l'extension automatique de fichiers de données :
 
Sélectionnez
ALTER TABLESPACE ora_data ADD FILE 'g:\oracle\oradata\orafrance\ORA_DATA04.dbf' SIZE 200M 
AUTOEXTEND ON NEXT 10M MAX SIZE 500M;
Pour modifier la taille d'un fichier de données :
 
Sélectionnez
ALTER DATABASE DATAFILE 'g:\oracle\oradata\orafrance\ORA_DATA02.dbf' RESIZE 50M;
Lorsqu'un tablespace a alloué de nouveaux extents ceux-ci même si des lignes ont été supprimées, restent alloués de telle sorte que si le tablespace a été rempli à hauteur de 80 %, sa taille ne pourra pas être réduite de plus de 20 %.
Seul un TRUNCATE TABLE ou un ALTER INDEX REBUILD libère les extents. Ainsi, pour retailler un tablespace il peut être nécessaire de le vider complétement en déplaçant les objets dans un autre tablespace.
Pour déplacer un tablespace :
  1. Mettre le tablespace OFFLINE :
     
    Sélectionnez
    ALTER TABLESPACE ora_data OFFLINE;
    
  2. Copier le fichier dans le nouveau répertoire
  3. Renommer le fichier :
     
    Sélectionnez
    ALTER DATABASE RENAME FILE 'g:\oracle\oradata\orafrance\ORA_DATA01.dbf' 
    TO 'g:\oracle\oradata\orafrance\data\ORA_DATA1.dbf;
    
  4. Mettre le tablespace ONLINE :
     
    Sélectionnez
    ALTER TABLESPACE ora_data ONLINE
    
  5. Supprimer le fichier g:\oracle\oradata\orafrance\ORA_DATA01.dbf.
Pour mettre un tablespace en lecture seule :
 
Sélectionnez
ALTER TABLESPACE app_data READ ONLY;
Pour mettre un tablespace en lecture/écriture :
 
Sélectionnez
ALTER TABLESPACE app_data READ WRITE;
Pour supprimer un tablespace :
 
Sélectionnez
DROP TABLESPACE app_data INCLUDING CONTENTS;
Cette commande ne supprime pas le datafile, il convient donc de supprimer le fichier haddock si nécessaire.

Enregistrer un commentaire

0 Commentaires