Administration des bases de données Chapitre 3 : Mise à jour des fichiers de contrôle et des fichiers redo log
Agenda Mise à jour du fichier de contrôle Utilisation du control file Examen du contenu du control file Récupération de l’information sur le control file Mise à jour des fichiers redo log Utilisation du redo log file Récupération de l’information sur le redo log file
Utilisation d’un control file Fichier binaire créé automatiquement par le SO au moment de la création de la BD Nécessaire pour le démarrage et le bon fonctionnement de la BD A chaque fois qu’une instance monte une BD, elle lit le control file pour localiser les data and redo log files Continuellement mis à jour pendant l’utilisation de la BD et doit être disponible à tout moment Il ne faut pas éditer le contenu du control file, seulement les processus Oracle qui peuvent modifier le contenu
Contenu d’un control file Le fichier du contrôle comprend les informations suivantes: Le nom et l’identification de la BD Le nom et l’emplacement des fichiers de données et des fichiers redo log Le nom des tablespaces La date et l’heure de la création de la BD L’historique du journal
Multiplexing Control Files Oracle recommande d’avoir au moins 2 control files en dupliquant le control file sur d’autres disques : on parle alors de Multiplexing control files Maximum de 8 multiplexed control file Deux façons de faire le multiplexing: Multiplexing Control Files Using init.ora Multiplexing Control Files Using an SPFILE
Multiplexing Control Files Using init.ora Sauvegarde de plusieurs copies d’un control file sur plusieurs disques Changement de la valeur du paramètre CONTROL_FILES qui se trouve dans le file init.ora CONTROL_FILES = (‘/ora01/oradata/MYDB/ctrlMYDB01.ctl', ‘/ora02/oradata/MYDB/ctrlMYDB02.ctl', ‘/ora03/oradata/MYDB/ctrlMYDB03.ctl') Dans le cas ou on perd un control file, on pourra restaurer la base en faisant une copie du control file ou en changeant le paramètre CONTROL_FILES dans init file
Multiplexing Control Files Using init.ora Oracle fait la maj de tous les control files en meme temps mais utilise le premier control file listé dans le paramètre CONTROL_FILES Pour ajouter de nouvelles copies de control files, il faut suivre les étapes suivantes : Shut down the database Copy the control file to more locations by using an operating system command Change the initialization parameter file to include the new control file name(s) in the parameter CONTROL_FILES Start up the database
Multiplexing Control Files Using an SPFILE Le Multiplexing en utilisant un SPFILE est similaire à celui avec le fichier init.ora. La différence réside au niveau du changement de la valeur du paramètre CONTROL_FILES Les étapes à suivre sont : Changer le SPFILE tant que la base est ouverte, la valeur du paramètre change uniquement après le redémarrage de l’instance SQL> ALTER SYSTEM SET CONTROL_FILES = ‘/ora01/oradata/MYDB/ctrlMYDB01.ctl', ‘/ora02/oradata/MYDB/ctrlMYDB02.ctl', ‘/ora03/oradata/MYDB/ctrlMYDB03.ctl', ‘/ora04/oradata/MYDB/ctrlMYDB04.ctl' SCOPE=SPFILE; Shut down the database SQL> SHUTDOWN NORMAL Copy an existing control file to the new location: $ cp /ora01/oradata/MYDB/ctrlMYDB01.ctl /ora01/oradata/MYDB/ctrlMYDB04.ctl Start the instance SQL> STARTUP
Récupération de l’information Pour connaître l’emplacement et les noms des control files, on utilise l’une des 2 vues du dictionnaire : V$PARAMETER ou V$CONTROLFILE V$CONTROLFILE Name V$PARAMETER Name, value
Utilisation d’un redo log file Les datas qui transitent dans le buffer redo log sont écrit périodiquement dans le redo log file par le biais de LGWR process Le SO met à jour les redo log files afin de minimiser la perte des datas Les redo log files enregistrent tous les changements apportés aux datas Les redo log files ne sont utilisés que pour la restauration ( lorsque une instance échoue à restaurer des datas validées qui n’ont pas été écrites dans les data files)
Utilisation d’un redo log file Le DBA peut configurer la BD afin de maintenir des copies des online redo log files « Online Redo Log Groups (ORLG) » Online Redo Log Groups un ensemble de copies identiques des online redo log files LGWR écrit les mêmes informations dans tous les online redo log files du même groupe Online Redo Log Members Chaque online redo log file dans un groupe est appelé membre Caque membre d’un groupe a la même taille Chaque base doit avoir au moins 2 redo log files ou 2 ORLG
Le buffer redo log file et les background processes SO enregistre de manière séquentielle tous les changements apportés à la BD dans les buffer redo log Le buffer redo log est utilisé de manière circulaire Les entrées redo sont écrites par le processus LGWR dans les redo log files, dans les cas suivants: Un commit est exécuté Le buffer redo log est rempli au tiers Avant que DBWR n’écrive les blocs modifiés du buffer cache de data dans les data files
Archivage des redo log files Le DBA doit déterminer si la configuration de la BD se fait en mode ARCHIVELOG ou en mode NOARCHIVELOG Les redo log files peuvent être archivés de 2 façons Manuel : en utilisant la commande ARCHIVE LOG LIST Automatique : le processus ARCH qui se chargera d’archiver les redo log files
Récupération de l’information Pour connaître l’emplacement et les noms des redo log files, on utilise l’une des 2 vues du dictionnaire : V$DATABASE ou V$INSTANCE V$DATABASE Name, LOG_MODE V$INSTANCE Archiver
Déplacement des redo log files Arrêter la BD Copier les redo log files au nouvel emplacement Monter la BD Exécuter la commande ALTER DATABASE RENAME FILE ‘filname1’ TO ‘filname2’ Ouvrir la BD
Questions?