Vous êtes sur la page 1sur 7

Atelier Administration BD

Atelier 2 : Dictionnaire de données, Fichiers de Contrôle


et Fichier Redo Log

Objectifs de l'atelier :
A la fin de cet atelier, l’étudiant doit être capable de :

 Consulter les différentes vues du dictionnaire de données pour


obtenir des informations sur la base,
 Gérer les fichiers de contrôle de la base de données,
 Identifier les fichiers Redo log de la base de données,
 Ajouter un groupe de fichiers Redo log à la base de données,
  Redimensionner les fichiers Redo log de la base de données,
 Supprimer un groupe de fichiers Redo log de la base de données.

Enoncé :

Le Dictionnaire des données


1. Recherchez la liste des vues du dictionnaire de données
SQL> connect system/votre_mot_de_passe

SQL> select table_name from dictionary;

2. Identifiez le nom de la base de données, le nom de l’instance et la taille des blocs


données. (Utilisez les vues dynamiques de des performances : V$DATABASE,
V$THREAD et V$PARAMETER)

SQL> select name from v$database;

SQL> select instance from v$thread;

SQL> select value from v$parameter where name='db_block_size';

3. Affichez la liste des noms des fichiers de données ; (utilisez la vue V$DATAFILE) :
SQL> select name from v$datafile;

4. Identifiez le fichier de données qui constitue le tablespace SYSTEM (interrogez la vue


DBA_DATA_FILES)
SQL> select file_name from dba_data_files where tablespace_name='SYSTEM';

5. Quels sont le volume d’espace libre et le volume d’espace occupé dans la base
de données ? (Utilisez DBA_FREE_SPACE et DBA_SEGMENTS) :
SQL> select sum(bytes)/1024 "espace libre" from dba_free_space;

SQL> select sum(bytes)/1024 "espace occupé" from dba_segments;

Page 1|7
Atelier Administration BD

6. Affichez le nom et la date de création des utilisateurs de la base de données


(utilisez DBA_USERS)
SQL> select username, created from dba_users;

Les Fichiers de Contrôle


7. Où est placé le fichier de contrôle et quel est son nom ? (Interroger $CONTROLFILE)
SQL> select name from v$controlfile;

8. Tentez de démarrer la base de données sans fichiers de contrôle. (Vous pouvez le


simuler en les renommant) Que se passe-t-il ?
Indications :

 Connectez-vous en tant que sys as sysdba


  Arrêtez la BD avec l’option immediate
  Déplacez les fichiers de contrôle vers un dossier de votre choix
 Démarrez la BD

9. Pour remédier à cet incident, arrêtez la BD, recopiez des fichiers de contrôle déplacés
dans leur emplacement initial (oradata\orcl), puis démarrer la BD.
10. Ajoutez un troisième fichier de contrôle multiplexé et nommez le control03.ctl, placez le
dans le répertoire de votre choix (on vous propose de le placer dans un sous dossier du
dossier oradata contenant les anciens fichiers de contrôle):
 Avant d’arrêter la base de données, modifiez le fichier SPFILE (à l'aide de la
commande ALTER SYSTEM) pour ajouter le nouveau fichier de contrôle control03.ctl,
son chemin est "ORACLE_BASE\ORADATA\ORCL\copiectl\CONTROL03.CTL" où ORCL
est le nom de votre BD (le SID) et ORACLE_BASE\ est votre ORACLE_BASE c'est-à-
dire le dossier ou se trouvent les fichiers constituant la base. Ce dossier n'est pas fixe
 et dépond de votre installation. Pour le connaître :
i. Exécuter la commande regedit
ii. Aller dans HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\KEY_HOME_NAME
iii. Consulter la valeur de la clé ORACLE_BASE

Remarque :
 Dans ce qui suit, ORACLE_BASE désigne le dossier contenant les fichiers de
la BD (par exemple, ici ORACLE_BASE est "d:\app\nadhem" et les fichiers de la
base de données'" se trouvent dans "d:\app\nadhem\oradata\orcl" où orcl est le nom de
la base de données (SID)), à remplacer par la valeur trouvée dans les registres 

Page 2|7
Atelier Administration BD

Windows (regedit). Remplacez aussi ORCL par le nom de votre base de


données (le SID) spécifié lors de la création de la BD (DBA selon l'atelier 1)

SQL> alter system set control_files=

'ORACLE_BASE\ORADATA\ORCL\CONTROL01.CTL',

'ORACLE_BASE\FLASH_RECOVERY_AREA\ORCL\CONTROL02.CTL',

'ORACLE_BASE\ORADATA \ORCL\copiectl\CONTROL03.CTL' scope=spfile;

 Arrêtez la base de données,

SQL> shutdown immediate;

 Créez le répertoire ORACLE_BASE\oradata\orcl\copiectl (par exemple


ORACLE_BASE\oradata\orcl\copiectl), ici ORACLE_BASE désigne le
dossier contenant les fichiers de la base Oracle, à remplacer par la
valeur trouvée dans les registres Windows (regedit).

 Copiez le fichier de contrôle existant dans le répertoire
ORACLE_BASE\oradata\orcl\control01.ctl dans le répertoire
 ORACLE_BASE\oradata\orcl\copiectl, nommez la copie control03.ctl
 Démarrer la base de données,

SQL> startup

 Consultez la vue dynamique sur les performances V$CONTROLFILE ou

V$PARAMETER SQL> select name from v$controlfile;

SQL> select value from v$parameter where name='control_files';

Page 3|7
Atelier Administration BD

Les Fichiers Redo Log


11. Enumérez le nombre et l’emplacement des fichiers redo log existants et affichez le
nombre de groupes de fichiers redo log et de membres, que votre base de données
contient
a. Consultez la vue dynamiques sur les performances V$LOGFILE
SQL> select member from v$logfile;

b. Utilisez la vue dynamiques sur les performances V$LOG pour afficher


le nombre de groupes log file et le nombre de membres
SQL> select group#, members from v$log;

12. Dans quel mode de base de données, la vôtre est-elle configurée ? L’archivage est-il
activé ?
c. Consultez la vue V$DATABASE pour afficher le mode de base de
données, SQL> select log_mode from v$database;

d. Consultez la vue V$INSTANCE pour vérifier si l’archivage dynamique est activé


SQL> select archiver from v$instance;

13. Ajoutez un membre redo log à chaque groupe dans votre base de données, dans le même
répertoire, en utilisant les conventions d’appellation suivante : Si le groupe 1 possède un
fichier appelé REDO01.LOG, ajouter un membre appelé REDO01bis.LOG
SQL> alter database add logfile member

'ORACLE_BASE\ORADATA\orcl\REDO01bis.log' to Group 1,

'ORACLE_BASE\ORADATA\orcl\REDO02bis.log' to Group 2,

'ORACLE_BASE\ORADATA\orcl\REDO03bis.log' to Group 3;

SQL> col member format a50

SQL> select group#, member from v$logfile order by 1;

14. Créez un nouveau groupe de fichier redo log dans le même répertoire
(ORACLE_BASE\ORADATA \orcl) :
e. Exécuter la commande ALTER DATABASE ADD LOGFILE pour créer un nouveau
groupe,
f. Consulter la vue dynamique de performance V$LOGFILE pour afficher les
nouveaux membres du nouveau groupe,
g. Consulter la vue dynamique de performance V$LOG pour afficher le nombre de
groupes de fichiers redo log et le nombre de membres par groupe
SQL> alter database add logfile group 4

('ORACLE_BASE\ORADATA\orcl\redolog04A.log',

'ORACLE_BASE\ORADATA\orcl\redolog04B.log') size 50M;

SQL> col group# for 99

Page 4|7
Atelier Administration BD

SQL> col member for a60

SQL> select group#, status, member from v$logfile order by 1;

SQL> select group#, members from v$log;

15. Déplacez les membres REDO01bis.log et REDO02bis.log dans le répertoire


'ORACLE_BASE\oradata\orcl\copielog'
a. Arrêtez la base de données,
b. Déplacez les membres REDO01bis.log et REDO02bis.log dans le répertoire
'ORACLE_BASE\oradata\orcl\copielog'
c. Démarrer la base de données à l’étape MOUNT,
d. Exécuter la commande ALTER DATABASE RENAME FILE pour renommer
les membres,
e. Consultez la vue dynamique de performance V$LOGFILE pour vérifier le résultat.
SQL> conn / as sysdba

SQL> shutdown immediate;

SQL> startup mount

SQL> alter database rename file

'ORACLE_BASE\oradata\orcl\redo01bis.log',

'ORACLE_BASE\oradata\orcl\redo02bis.log' to

'ORACLE_BASE\oradata\orcl\copielog\redo01bis.log',

'ORACLE_BASE\oradata\orcl\copielog\redo02bis.log';

SQL> select group#, status, member from v$logfile order by 1;

16. Supprimez le groupe de redo log 4


h. Exécutez la commande ALTER DATABASE DROP LOGFILE GROUP ,
i. Consultez la vue dynamique de performance V$LOGFILE pour vérifier le résultat.
SQL> alter database drop logfile group 4;

SQL> select group#, members from v$log;

17. Redimensionnez tous les fichiers redo log à 100M (les fichiers redo log ne peuvent pas
être redimensionnés, nous devons ajouter de nouveaux et supprimer les anciens)
SQL> alter database add logfile group 4

('ORACLE_BASE\oradata\orcl\redolog04A.log',

'ORACLE_BASE\oradata\orcl\redolog04B.log') size 100M REUSE,

group 5

Page 5|7
Atelier Administration BD

('ORACLE_BASE\oradata\orcl\redolog05A.log',

'ORACLE_BASE\oradata\orcl\redolog05B.log') size 100M,

group 6

('ORACLE_BASE\oradata\orcl\redolog06A.log',

'ORACLE_BASE\oradata\orcl\redolog06B.log') size 100M;

SQL> select group#, status from v$log;

SQL> alter database open;

SQL> alter system switch logfile;

SQL> select group#, status from v$log;

GROUP# STATUS

------ ----------------

1 ACTIVE

2 INACTIVE

3 INACTIVE

4 CURRENT

5 UNUSED

6 UNUSED

6 ligne(s) sélectionnée(s).

-- si vous avez des groupes actifs (nécessaire pour la récupération d’instance), forcez un checkpoint
pour appliquer les modifications qu’ils contiennent aux fichiers des données, et ce comms suit :

SQL> alter system checkpoint;

SQL> select group#, status from v$log;

SQL> select group#, status from v$log;

GROUP# STATUS

------ ----------------

1 INACTIVE

2 INACTIVE

3 INACTIVE

Page 6|7
Atelier Administration Bases de Données

4 CURRENT

5 INACTIVE

6 INACTIVE

SQL> alter database drop logfile group 1, group 2, group 3;

SQL> select group#, status from v$log;

Page 7|7

Vous aimerez peut-être aussi