Questionnaire 8 : Tablespaces Flashcards
- Quelle traduction pour espace disque logique en anglais ? De quoi est-il composé ?
Traduction: tablespace
Il est composé de DataFile, segment et extents;
- Quelle différence entre un tablespace géré localement ou par le dictionnaire ?
localement : dans le tablespace lui-même
dictionnaire : dans le tablespace système
- Risque-t-on plus ou moins de fragmentation dans un tablespace s’il est géré localement ? Pourquoi ?
Non, on a moins de fragmentation car Oracle gère les extensions automatiquement.
- Tous les tablespaces sont-ils gérés localement par défaut ?
Non, le tablespace système est géré dictionnaire par défaut.
- Quels sont les 3 types de tablespaces ?
Permanent, undo, temporaire
- Citez 3 raisons qui amènent à définir plusieurs tablespaces dans une base de données.
- Utiliser des tablespace UNDO et TEMPORAIRE car ils sont mieux gérés.
- Meilleures perfs lorsqu’ils sont répartis sur des disques différents.
- Administration d’une application plus facile si elle a ses propres tablespaces
- Citez les 6 tablespaces recommandés pour une base de données Oracle.
- undo
- temporaire
- system
- sysaux
- table
- index
- Sans préciser bigfile ou smallfile à la création d’un tablespace, de quel type est-il crée ?
Ni l’un ni l’autre (!?)
- L’option unlimited pour l’extension d’un fichier de données est-elle conseillée et pourquoi ?
Non, il faut mieux laisser Oracle se rendre compte d’un dépassement de disque plutôt que le système.
- Quelle différence entre “dictionary” et “local” dans la création d’un tablespace ? Lequel est préférable et pourquoi ?
Local est préférable car les extensions sont mieux gérées.
- De quoi s’occupe-t-on dans le “segment space management” d’un tablespace ?
De la récupération des trous laissés par les extensions.
- Que signifie “storage 200K” lorsqu’il est spécifié à la création d’un tablespace ?
La taille initiale par défaut d’un segment.
- Avantage et inconvénient de “compress” pour un tablespace ?
Prend moins d’espace disque mais plus de CPU.
- Que doit-on prévoir si l’on définit pour un tablespace un blocsize de 16K alors qu’il serait de 8K si l’on avait rien précisé à sa création
Il faudra penser à créer un pool pour pouvoir l’utiliser.
- Quelle est la signification de l’option nologging pour un tablespace ?
Pas de journalisation de certaines opérations.
- Quelle est l’intérêt de l’option flashback pour un tablespace ?
Possibilité de restauration partielle.
- Dans quelles conditions peut-on modifier la taille d’un fichier de données ?
Il ne doit pas dépasser la capacité disque et la taille de la dernière extension.
- Comment interdire à un fichier de données presque plein de s’étendre automatiquement lorsqu’il sera plein ?
En modifiant le datafile:
ALTER DATABASE DATAFILE “nom_fichier” RESIZE nouvelleTaille
- Comment bloquer simplement l’exploitation d’une application sans arrêter les autres applications de la même base de données ? Citez la commande.
ALTER DATABASE “nom_du_tablespace” OFFLINE
- Dans quelles conditions peut-on déplacer un fichier de données ? Donnez les 2 réponses possibles
La DB doit être en état MOUNT ou les tablespaces doivent être offline
- Citez les étapes pour déplacer un fichier de données en interrompant l’exploitation de la BD
- shutdown immediate
- déplacer le fichier
- alter database rename datafile ‘ancien nom’ to ‘nouveau nom’
- alter database open
- Citez les étapes pour déplacer un fichier de données en interrompant seulement l’exploitation de son tablespace.
- déplacer le fichier
- alter database rename datafile ‘ancien nom’ to ‘nouveau nom’
- alter database open
(pareil que 21, sans le shutdown)
- Citez 3 conditions pour pouvoir supprimer un fichier de données dans un tablespace.
Doit être vide, ne doit pas être le premier datafile, le tablespace doit être online
- Dans quel cas spécifie-t-on l’option “including content” à la suppression d’un tablespace et quel est son effet ?
Le tablespace doit être vide, on force la suppression de son contenu.
- Dans quel cas spécifie-t-on l’option “cascade contraints” à la suppression d’un tablespace et quel est son effet ?
Lorsque certaines de ses tables sont référencées par d’autres tables dans d’autres tablespaces. Cela supprime les clés étrangères
- Dans la vue dba$tablespace, la colonne allocation_type peut valoir user, system ou uniform. Quelle est la signification de chacune de ces options ?
User : géré les extensions à la main
System : géré automatiquement les extensions par le système
Uniform : toutes les extension sont de la même taille
- Quelle différence entre les vues dba$datafile et v$datafile ?
dba$datafile donne des infos sur les tablespace ou datafile comme elles sont sur le disque.
v$datafile donne des infos dynamique.
- Comment connaître le nombre d’extensions composant la table ‘voiture’ du schema ‘garage’ ? Citez la requête ou explicitez-là.
select extents from dba_segment where owner=’garage’ and segment_name=’voiture’;
- Comment connaître le nombre de trous (emplacement libre) plus gros que 20 blocks dans un fichier de données ?
Citez la requête ou explicitez-là.
select * from dba_free_space where tablespace_name=’nom’ and blocks>20;
- Comment dresser la carte des extensions d’un fichier de données? Citez la requête ou explicitez-là.
select * from dba_extents where tablespace_name=’nom’ and segment_name=’nom’ order bay block_id;
TP1: Créer un nouveau tablespace de nom “tbl” géré localement avec un fichier de données tbl01.dbf de 1 mégaoctet sans extention possible. A l’intérieur de celui-ci chaque extention de segment sera de 100k.
create tablespace tbl datafile 'C:\Oracle\oradata\orcl\tbl01.dbf' size 1M autoextend off extent management local uniform size 100k; ;
TP2: Créer une table avec un segment initial de 500k dans tablespace. Vérifier qu’il est composé de 5 extentions.
create table tt (
cc char(250))
tablespace tbl1
storage (INITIAL 500k);
desc dba_extents
select segment_name, block_id, blocks from dba_extents where tablespace_name = ‘TBL1’;
TP3: Vérifier qu’il n’est pas possible de créer une 2e table de 500k dans ce tablespace.
create table ttt (
cc char(250))
tablespace tbl1
storage (INITIAL 500k);