4 dba journalisation
DESCRIPTION
BDTRANSCRIPT
1
Copyright © Oracle Corporation, 2002. Tous droits réservés.
Administration de BD
Gérer les fichiers de journalisation
en ligne
Nour-eddine EL FADDOULILaila BENHLIMA
2011/2012
Source : Oracle9 i Database : DBA I
Copyright © Oracle Corporation, 2002. Tous droits réservés.
Plan
• Rôle des fichiers de journalisation en ligne
• Structure des fichiers de journalisation en ligne
• Gestion des changements de fichiers de
journalisation et les points de reprise (checkpoints)
• Multiplexage et mise à jour des fichiers de
journalisation en ligne
• Recherche des informations sur les fichiers de
journalisation en ligne
2
Copyright © Oracle Corporation, 2002. Tous droits réservés.
Fichiers de journalisation en ligne (online redo logs)
• Enregistrent toutes les modifications apportées aux
données:
– Transaction écrite de manière synchrone dans le tampon
de journalisation puis transférée dans les fichiers de
journalisation en ligne.
• Utilisés pour la récupération en cas de défaillance
physique (cas d'échec d'instance pour récupérer les
données validées qui n'ont pas été écrites dans les
fichiers de données)
• Peuvent être organisés en groupes
Copyright © Oracle Corporation, 2002. Tous droits réservés.
Structure des fichiers de journalisation en ligne
Disque 1
Disque 2
Groupe 1
Membre
Membre
Groupe 2
Membre
Membre
Groupe 3
Membre
Membre
• Sont structurés en groupes
• Un groupe est un ensemble de copies (membres)
identiques de fichiers de journalisation en ligne.
• LGWR écrit simultanément les mêmes informations dans
tous les fichiers membres d'un groupe.
• Deux groupes au moins sont requis
3
Copyright © Oracle Corporation, 2002. Tous droits réservés.
•Les groupes et les membres initiaux sont créés en même
temps que la BD.
• Il est possible d’ajouter des groupes ou des membres dans
la limite des paramètres de la commande CREATE
DATABASE:
• MAXLOGFILES = le nombre maximal absolu de groupes.
• MAXLOGMEMBERS = nombre maximal de membres par
groupe.
Structure des fichiers de journalisation en ligne
Copyright © Oracle Corporation, 2002. Tous droits réservés.
• Les membres d'un groupe ont tous la même taille et
portent tous le même numéro de séquence de journal
(identifiant fichier de journalisation ).
• Il est attribué lorsque le serveur Oracle écrit dans un
groupe de fichiers .
• Quand oracle archive les fichiers de journalisation, le fichier
archivé garde le numéro de séquence du journal.
• Ce No est remplacé à chaque nouvelle utilisation du groupe
• Le numéro en cours est stocké dans le fichier de contrôle et
dans l'en-tête de tous les fichiers de données.
Structure des fichiers de journalisation en ligne
4
Copyright © Oracle Corporation, 2002. Tous droits réservés.
Mode de fonctionnement des fichiers de journalisation en ligne
• Les fichiers de journalisation en ligne sont utilisés de
façon cyclique. Lorsqu'un fichier de ce type est rempli, le
processus LGWR passe au groupe de fichiers de
journalisation suivant: changement de fichier de
journalisation (basculement ou switch ).
• Au changement de fichier de journalisation :
– Une opération de point de reprise (checkpoint) se
produit également.
– Les informations sont écrites dans le fichier de
contrôle.
Copyright © Oracle Corporation, 2002. Tous droits réservés.
Mode de fonctionnement des fichiers de journalisation en ligne
Au cours d'un point de reprise :
� Plusieurs blocks "dirty" dans le tampon de données
faisant l'objet d'un point de reprise sont écrits par DBWn
dans les fichiers de données.
� Le processus CKPT met à jour le fichier de contrôle
pour indiquer qu'il s'est exécuté correctement. Si le point
de reprise est lancé par un changement de fichier de
journalisation, ce processus met également à jour les en-
têtes des fichiers de données.
5
Copyright © Oracle Corporation, 2002. Tous droits réservés.
Mode de fonctionnement des fichiers de journalisation en ligne
• Un point de reprise se produit, par exemple:
– à chaque changement de fichier de journalisation
– lors de l’arrêt de la BD (shutdown) avec l'option Normal,Transactional ou Immediate
– lorsque son exécution est forcée par le paramètre d'initialisationFAST_START_MTTR_TARGET (durée max de récupération d'instance)
– lorsque le DBA l'exécute manuellement (alter system checkpoint ),
• Des informations sur chaque point de reprise sont enregistréesdans le fichier alert_SID.log si le paramètre d'initialisationLOG_CHECKPOINTS_TO_ALERT possède la valeur TRUE. (Sa Lavaleur par défaut est FALSE)
Copyright © Oracle Corporation, 2002. Tous droits réservés.
Forcer des changements de fichier de journalisation
• En général, le changement de fichier se fait
automatiquement
• Il est possible de forcer un changement de fichier de
journalisation pour des opérations de maintenance :
ALTER SYSTEM SWITCH LOGFILE;
6
Copyright © Oracle Corporation, 2002. Tous droits réservés.
Ajouter des groupes de fichiers de journalisation en ligne
Possibilité d’ajouter plusieurs groupes à la fois
Groupe 1 Groupe 2 Groupe 3
ALTER DATABASE ADD LOGFILE GROUP 3
('$HOME/ORADATA/u01 /redo3a.log',
'$HOME/ORADATA/u02 /redo3b.log') SIZE 1M;
redo3b.log
redo3a.logredo1a.log
redo1b.log
redo2a.log
redo2b.log
Copyright © Oracle Corporation, 2002. Tous droits réservés.
Ajouter des membres à des fichiers de journalisation en ligne
Si le fichier membre existe déjà, il doit être de même taille et il faut indiquer l'option REUSE
ALTER DATABASE ADD LOGFILE MEMBER
'$HOME/ORADATA/u04/redo1c.log' TO GROUP
1,
'$HOME/ORADATA/u04/redo2c.log' TO GROUP
2,
'$HOME/ORADATA/u04/redo3c.log' TO GROUP
3;
Groupe 1 Groupe 2 Groupe 3
redo1a.log
redo1b.log
redo2a.log
redo2b.log
redo1c.log redo2c.log
redo3a.log
redo3b.log
redo3c.log
7
Copyright © Oracle Corporation, 2002. Tous droits réservés.
Supprimer des groupes de fichiers de journalisation en ligne
• Une instance nécessite au moins deux groupes de fichiersde journalisation en ligne.
• Il n’est pas possible de supprimer un groupe actif ou encours (status = Active ou Current ).
• A la suppression d’un groupe de fichiers de journalisationen ligne, les fichiers du système d'exploitation sontconservés.
ALTER DATABASE DROP LOGFILE GROUP 3;
redo1a.log redo2a.log redo3alogoGroupe 1 Groupe 2 Groupe 3
Copyright © Oracle Corporation, 2002. Tous droits réservés.
Supprimer des membres de fichiers de journalisation en ligne
• S'il s'agit du groupe en cours, il faut forcer un changement defichier de journalisation pour supprimer le membre ou legroupe.
• Si la BD fonctionne en mode ARCHIVELOG et que le groupede fichiers de journalisation du membre n'est pas archivé, iln’est pas possible de supprimer le membre ou le groupe.
• Lorsque cette commande est exécutée, le fichier de l’OSn'est pas supprimé
ALTER DATABASE DROP LOGFILE MEMBER '$HOME/ORADATA/u04/redo3c.log';
Groupe 1 Groupe 2
redo1b.logRedo1c.log
redo1a.log
redo1b.rdoredo2c.log
redo1a.log
8
Copyright © Oracle Corporation, 2002. Tous droits réservés.
Transférer ou renommer des fichiers de journalisation en ligne
On utilise l'une des méthodes suivantes :• Commande ALTER DATABASE:
– Arrêter la base de données.– Copier les fichiers de journalisation en ligne dans un nouvel
emplacement.
– Placer la base de données en mode MOUNT.– Exécuter la commande.
– Ouvrir la base de données pour un fonctionnement normal.
• Ajouter de nouveaux membres et supprimer les anciens.
ALTER DATABASE RENAME FILE
'$HOME/ORADATA/u01/redo2a.log'
TO '$HOME/ORADATA/u02/redo1c.log';
Copyright © Oracle Corporation, 2002. Tous droits réservés.
Annuler des fichiers de journalisation en ligne
• Si le fichier de journalisation en ligne est endommagé, lacommande ALTER DATABASE CLEAR LOGFILE permetde le réinitialiser.
• le mot-clé UNARCHIVED est utilisé pour ne pas archiver le fichier de journalisation en ligne endommagé.
• Utile lorsque la suppression de fichier log n’est pas
possible (Ex. 2 groupes)
ALTER DATABASE CLEAR UNARCHIVED
LOGFILE GROUP 2;
ALTER DATABASE CLEAR LOGFILE GROUP 2;
9
Copyright © Oracle Corporation, 2002. Tous droits réservés.
Configuration des fichiers de journalisation
• Combien de groupes ? :– en général 2 groupes mais si des messages du fichier trace
LGWR ou du fichier d'alertes indiquent que le processus LGWRdoit souvent attendre la fin d'un point de reprise ou l'archivaged'un groupe pour accéder à un groupe, il faut ajouter desgroupes.
• Combien de membres ? :– Le même nombre dans chaque groupe m si pas de contraintes
• Où les placer ?– Les membres d’un groupe doivent être placés sur des disques
différents (en cas de pb sur un disque, les autres membres sontdisponibles)
– Mettre les fichiers en ligne et les fichiers archivés dans desdisques différents (réduire concurrence entre ARCn et LGWR etlimiter le risque de perte de ces fichiers en cas de défaillance)
Copyright © Oracle Corporation, 2002. Tous droits réservés.
• Taille minimale est de 50 ko et taille maximale dépend du
système d'exploitation.
• Les membres de différents groupes peuvent avoir des tailles
différentes mais ceci ne doit être que temporaire.
• Plusieurs facteurspeuvent influer sur la taille des fichiers de
journalisation en ligne :
– nombre de changements de fichier de journalisation,
– d'entrées de journalisation et leur volume,
– l'espace de stockage disponible sur le support (une bande,
par exemple, si l'archivage est activé),
–Etc.
Configuration des fichiers de journalisation - suite
10
Copyright © Oracle Corporation, 2002. Tous droits réservés.
Gérer les fichiers de journalisation en ligne à l'aide d'Oracle Managed Files (OMF)
• Définir le paramètre DB_CREATE_ONLINE_LOG_DEST_n :
Création de deux groupes (numéro 1 et 2) dont chacun contientdeux membres de 100M (par défaut). Les noms des membres sontdonnés automatiquement (voir le fichier alertSID.log).
• On peut ajouter un groupe sans spécification de fichier :
• Supprimer un groupe
DB_CREATE_ONLINE_LOG_DEST_1DB_CREATE_ONLINE_LOG_DEST_2
ALTER DATABASE DROP LOGFILE GROUP 3;
ALTER DATABASE ADD LOGFILE;
Copyright © Oracle Corporation, 2002. Tous droits réservés.
Obtenir des informations sur les groupes et les membres
• En utilisant V$LOG et $VLOGFILE
• Les valeurs les plus courantes de la colonne STATUS deV$LOG– UNUSED : aucune écriture n'a encore été effectuée dans ce
groupe de fichiers de journalisation (nouveaux fichiers)– CURRENT : c’est le groupe de fichiers de journalisation en
ligne en cours. Ce statut implique que ce groupe est actif.– ACTIVE : Ce groupe de fichiers de journalisation est actif, mais
il ne s'agit pas du groupe en cours (Il peut être en coursd'utilisation pour la récupération d'un bloc)
– INACTIVE indique que le groupe de fichiers de journalisation enligne n'est plus utile à la récupération d'instance
– CLEARING indique que le journal est recréé sous la forme d'unfichier
11
Copyright © Oracle Corporation, 2002. Tous droits réservés.
Fichiers de journalisation archivés
• L'archivage des fichiers de journalisation en ligne (mode
ARCHIVELOG) présente deux avantages :
– Récupération : la sauvegarde de la BD ainsi que les fichiers
de journalisation en ligne et archivés peuvent garantir la
récupération de toutes les transactions validées
– Exemple : défaillance disque données mais sauvegarde
des données de 8 jours + fichier archivés
– Sauvegarde : celle-ci peut s'effectuer lorsque la BD est
ouverte.
• Par défaut, une base de données est créée en mode
NOARCHIVELOG.
Copyright © Oracle Corporation, 2002. Tous droits réservés.
Le paramètre d'initialisation LOG_ARCHIVE_START indique sil'archivage doit être automatique ou manuel lors du démarragede l'instance:� TRUE indique que l'archivage est automatique. ARCn lancel'archivage du groupe de fichiers de journalisation complet àchaque changement de fichier.� FALSE (par défaut) indique que l'administrateur de base dedonnées archive manuellement les fichiers de journalisation enligne complets. Il doit exécuter manuellement une commande àchaque fois qu'il souhaite en archiver un. Il est possibled'archiver manuellement tous les fichiers journalisation en ligneou uniquement certains d'entre eux.
Fichiers de journalisation archivés
12
Copyright © Oracle Corporation, 2002. Tous droits réservés.
Fichiers de journalisation archivés
• Archivage réalisé automatiquement par le processus ARCnou à l'aide d'instructions SQL
• Lorsque les fichiers sont correctement archivés :
– une entrée est générée dans le fichier de contrôle– Enregistrements du nom des fichiers archivés, du numéro de
séquence du journal et du numéro SCN le plus élevé et le plusfaible
• Les fichiers de journalisation en ligne complets ne peuventpas être réutilisés :– tant qu'un point de reprise (checkpoint) n'a pas eu lieu
– tant qu'ils n'ont pas été archivés par ARCn
• Les fichiers archivés peuvent être multiplexés (dupliqués).• Ils sont mis à jour par l'administrateur de base de données.
Copyright © Oracle Corporation, 2002. Tous droits réservés.
Synthèse
Ce chapitre vous a permis d'apprendre à :• expliquer le rôle des fichiers de journalisation en ligne• obtenir des informations sur les fichiers de
journalisation en ligne• gérer les changements de fichier de journalisation• multiplexer et mettre à jour les fichiers de journalisation
en ligne• gérer les fichiers de journalisation en ligne à l'aide
d'Oracle Managed Files (OMF)