Questionnaire 7 : Fichiers Flashcards
- Quel est le contenu du fichier de contrôle (au moins 4 réponses) ?
- Nom DB
- date/heure création DB
- emplacements des fichiers DB
- infos sur les points de reprise DB
- A quel moment s’aperçoit-on d’un problème avec un fichier de contrôle ? Que peut-on faire
préventivement ?
Au moment du montage de la base de donnée.
On peut le multiplexer pour toujours avoir une copie disponible.
- Peut-on démarrer une instance s’il y a un problème avec le fichier de contrôle ?
Oui, on peut démarrer une instance. Le problème va se poser au montage de la base de donnée.
- A quoi sert la vue v$controlfile
A visualiser le nom et la taille des fichiers de contrôle.
- A quoi sert la vue v$controlfile_record_section ? Donnez un exemple d’un cas d’utilisation de
cette vue.
Elle sert à visualiser les nombres d’enregistrement type par type des différents éléments de la base.
Par exemple pour Datafile si on trouve 32, ça veut dire qu’on a 32 slot pour les fichier de donnée. Si on en a déjà utiliser 7 il nous en reste 25.
- Quel sont les SCN (System Change Number) significatifs pour la gestion de la BD que l’on trouve
dans v$database ? Quel sont leurs valeurs relatives (plus grand, plus petit) ?
current_scn : SCN courrant
controlfile_change# : dernier SCN enregistré
checkpoint_change# : SCN du dernier point de rerpise
- Comment déplacer un des fichiers de contrôle dans un exploitation Oracle avec fichier de
paramètre serveur (5 étapes) ?
– Spécifier les anciens et le nouvel emplacement par alter system set control_files = … scope=spfile
– Arrêter la base proprement par shutdown immediate
– Dupliquer un fichier de contrôle vers le nouvel
emplacement
– Redémarrer la base de données par startup
– Vérifier avec v$controlfile
- Que se passera-t-il et pourquoi si l’on duplique un fichier de contrôle, qu’on le fasse prendre en
compte par “alter system” puis que l’on arrête et redemarre la base de données ?
La DB ne fera pas le mount car le fichier de contrôle ne sera pas cohérent.
- Citez 2 situations d’utilisation des fichiers de journalisation
Restauration de l’instance
Restauration de la BD (si on a fait les archives des journaux)
- Un de vos tablespaces utilisateur est corrompu, tous les autres sont en ordre. Vous disposez
d’une sauvegarde des données de 3 jours et des fichiers de journalisation. Est-ce suffisant pour
redémarrer la base de données ou que manque-t-il ?
C’est pas suffisant car pour redémarrer on a aussi besoin des archives des journaux de journalisation.
- Suite à une panne de courant, votre serveur Oracle s’est arrété brutalement. Vous disposez des
tablespaces, d’une sauvegarde de 3 jours et des fichiers de journalisation. Est-ce suffisant pour
redémarrer la base de données ou que manque-t-il ?
Oui, c’est suffisant.
- Pourquoi faut-il au moins 2 groupes de journalisation ?
Parce que le processus de LGWR et dbwn qui relie les journaux ne peuvent pas travailler sur le même groupe.
- Selon la vue v$log, à quelle situation correspond le status UNUSED pour un groupe de
journalisation ? Et le status ACTIVE ?
UNUSED = pas encore écrit
CURRENT
ACTIVE (nécessaire pour restauration instance)
INACTIVE
- De quel numéro garde-t-on la trace avec sa date dans un groupe de journalisation actif ?
Le numéro et date du plus petit SCN
- Quelle différence entre un numéro de groupe et un numéro de séquence pour un groupe de
journalisation ?
le numéro de groupe on boucle dessus (fixe), le numéro de séquence on l’incrémente à l’infini (très grand).
- Soit une instance avec 3 groupes de journalisation (numérotés 1,2,3) comprenant chacun 2
fichiers membres (1a,1b,2a,2b,3a,3b). A quel groupe sera affecté en principe le numéro de
séquence 5 ?
Le numéro de séquence 5 sera affecté au groupe 2.
- Peut-il y avoir 2 groupes de journalisation avec le status INACTIVE dans v$log ? Et avec le status
ACTIVE ?
Oui dans le deux cas.
- A quoi correspond le status CURRENT pour un groupe de journalisation
C’est le groupe en cours d’écriture.
- Un fichier membre a un status vide dans v$logfile. Qu’est ce que cela veut dire ?
Ca veut dire qu’il est utilisé, qu’il n’y a pas de problème.
- Quels sont les SCN (System Change Number) gardés après l’utilisation de chaque groupe de
journalisation dans v$log_history
Le plus petit et le plus grand.
- Comment visualiser l’heure dans une colonne de type DATE, par exemple pour la colonne
fisrt_time de v$log_history ?
Il faut utiliser la fonction to_char(first_time,’DD/MM HH24:MI’)
- Pourquoi des fichiers de journalisation trop petits pénalisent-ils les performances ?
On a de mauvaise performance à cause de chaque basculement. Car a chaque basculement on a une sychronisation.
- Quel est le problème avec des fichiers de journalisation trop volumineux ?
En cas de basculement restauration de l’instance serait trop longue.
- Quelle est la recommandation d’Oracle sur la fréquence de basculement des groupes de
journalisation ?
Viser de basculer en moyenne toute les 20-30 minutes.
- Le fichier d’alertes de l’instance est rempli de messages “cannot allocate new log … checkpoint not complete”. Que cela veut-il dire et que faut-il faire ?
Ca veut dire que le processus LGWR est souvent en attente qu’un checkpoint soit terminer pour travailler sur ce groupe.
Il faut ajouter un nouveau groupe de journalisation.
- Le fichier d’alertes de l’instance est rempli de messages “cannot allocate new log … all online logs needed archiving”. Que cela veut-il dire et que faut-il faire ?
Ca veut dire archivage du groupe n’est pas terminé et qu’on peut pas basculer sur un autre groupe.
Remède: rajouter un groupe.
- Quelles sont les 2 causes possibles de mise en attente de LGWR lorsque le nombre de groupe de journalisation est faible ?
On peut être mis en attente parce qu’un point de reprise n’est pas fini d’être pris ou l’archivage n’est pas fini.
- Citez 2 moyens pour vérifier la fréquence des basculements de fichier de journalisation.
Le message “thread 1 advenced to log sequence” ou regarder le v$log_history.
- Décrivez comment augmenter la taille des fichiers de journalisation.
Il faut:
- ajouter des groupe avec la taille souhaité
- forcer les basculements
- supprimer les anciens groupes.
- Soit une instance avec 2 groupes de journalisation (numérotés 1,2) comprenant chacun 1 fichier
membre (1a,2a). Décrivez en citant les commandes comment améliorer la sécurité de la
journalisation
Il faut rajouter des membres:
ajouter un membre 1b et 2b.
alter database add logfile member ‘…’ to group N;
- Soit une instance avec 2 groupes de journalisation (numérotés 1,2) comprenant chacun 2 fichiers
membres (1a,1b,2a,2b) de 50M. Vous constatez que les basculements de groupe sont très
souvent en attente. Que devez vous faire, en citant les commandes ?
Il faut ajouter un nouveau groupe du même nombre de membre que les autres groupe.
Et il devra avoir la même taille.
alter database add logfile ‘nom fichier log’ size 30M;
(30M c’est pour l’exemple)
- Soit une instance avec 2 groupes de journalisation (numérotés 1,2) comprenant chacun 2 fichiers
membres (d:…redo01a.log,d:…redo01b.log,d:…redo02a.log,d:…redo02b.log). Vous venez d’installer un autre disque (disque e:). Décrivez en citant les commandes comment améliorer les performances de la journalisation en utilisant ce disque pour répartir les accès.
Dia11 a voir
- shutdown immediate
– déplacer le ou les fichiers de journalisation
– startup mount
– alter database rename file ‘ancien’ to ‘nouveau’
– alter database open
- Dans quel status (vue v$log) un groupe doit-il être pour pouvoir lui retirer un membre ou le supprimer ? Que doit-il rester au minimum dans chaque cas pour comme groupe ou fichier de journalisation ?
Si on veut supprimer un membre d’un groupe il faut qu’il reste au moins un membre dans le groupe.
Si on veut supprimer un groupe il faut qu’il reste au minimum 2 groupe.
- Quel est l’effet de ‘alter system switch logfile’ ?
Ca force le basculement du groupe de journalisation.
- Quel est l’effet et l’intérêt de définir le paramètre FAST_START_MTTR_TARGET ?
Ca permet de définir des point de reprise intermédiaire sans basculement de groupe. L’interêt c’est de diminuer le temps de rédemarrage de l’instance en cas de reprise (suite à un arrêt anormale de la BD).
- Quand la colonne optimal_logfile_size de v$instance_recovery est-elle renseignée et qu’elle est
sa signification ?
Quand fast_start_mttr_target existe. C’est la taille des fichiers log qui permette d’atteindre ces objectif sans point intermédiaire.