Questionnaire2 Flashcards
- Comment un DBA peut-il accéder dans le dictionnaire toutes les définitions de tables et un utilisateur celles sur lesquelles il a des droits ?
DBA_TABLES
ALL_TABLES
- Lorsqu’une transaction est validée (commit), est-il possible que ses données ne soient pas écrites dans les fichiers de données sans risque de les perdre ? Justifier.
Oui. Principe de la validation rapide. Elles ne sont pas écrite tout de suite dans la table, mais directement dans le journal. La journalisation permettra un rollforward.
- Donnez la requête qui permettrait de retrouver dans le dictionnaire le nom de la table contenant la définition des indexes qui appartiennent à l’utilisateur courant.
Selsect * from dict when table_name like”user%ind%”
- Quel pool de la SGA est-il conseillé d’ajuster pour mémoriser les contextes des processus dans une configuration de serveur partagés ? S’il est insuffisant, dans quel pool déborderont-t-ils ?
En priorité dans le Large pool (DIA14). S’il devient insuffisant il débordera sur le Shared pool. C’est fait dynamiquement.
- Le mot de passe de Toto est 1234. Avec une authentification Windows, la commande « Connect toto/titi as SYSOPER” a t-elle une chance d’aboutir ? Pourquoi ?
Piège! Réponse, oui! Le mot de passe n’est pas contrôlé. On se connecte avec toto. Mais le seul contrôl qui sera effectué sera de savoir si l’utilisateur est dans le groupe ORA_OPER. Par contre on entre dans un schéma public et non celui de toto.
- Citez les 4 raisons qui peuvent déclencher une écriture dans les fichiers de journalisation.
- Lorsqu’une transaction est validée (lors d’un commit).
- Le Redo Log Buffer est au tiers pleins (tier car le buffer peut se remplir rapidement, précaution pour éviter le débordement)
- Database Writer s’apprête à écrire des modifications non validées (pour le rollback)
- Un délai est dépassé (3 secondes, paramétrable)
- Citez les 3 raisons qui peuvent déclencher une synchronisation par CKPT (checkpoint)
- Le CKPT synchronise pédiodiquement entre le database cache buffer et les fichiers de données. Pour éviter que les buffers mémoires soient overchargés.
- Pour éviter que les fichiers de journalisation soient pleins, avant un écrasement par rotation de fichiers de journalisation (changement de groupe), il faut faire une synchronisation.
- Lorsqu’on arrête la base de données. Comme la mémoire va être effacée, on fait une synchronisation.
- Soit la configuration mémoire : SGA_MAX_SIZE = 1000M, SGA_TARGET = 900M, LOG_BUFFER=524288, DB_4K_CACHE_SIZE = 16M, DB_CACHE_SIZE = 128M. Quelle est la taille disponible pour la gestion automatique de la SGA?
900 - 16 - 4 = 880Mo
SGA_MAX_SIZE = 1000M SGA_TARGET = 900M (si était à 0 il n’y aurait pas de gestion automatique) LOG_BUFFER = 5124288 (alloué au moins un granule soit 4M) DB_4K_CACHE_SIZE = 16M DB_CACHE_SIZE = 128M
SGA_TARGET seulement → c’est la gestion automatique de la SGA qui gère DB_CACHE_SIZE est géré par la SGA et peut avoir plus de place si c’est possible.
900 (SGA_TARGET) - 16 (DB_4K_CACHE_SIZE) - 4 (LOG_BUFFER) = 860M
- Le référentiel AWR (Automatic Workload Repository) contient des statistiques déversées par différents processus de l’instance à l’occasion d’une collecte chaque 60 minutes, mais également d’autres choses. De quoi s’agit-il ?
Contient autre chose que les statistiques → à chaque nouvelle collecte, il y a un diagnostique (performance et problème rencontré mais aussi des solutions proposées) dont le résultat sera stocké dans le différentiel.
- Que contient le dictionnaire de données ?
Se trouve dans le tablespace SYSTEM et appartient à SYS. Contient l’ensemble des tables et vues décrivant les structures DB, utilisateurs, schémas.
- Dans quelle zone mémoire est la “SQL work area” et donnez 3 exemples de son utilisation.
Elle fait partie de la PGA, détient des tris, jointures, index.
Utilisé pour les tri
Utiliser pour les jointure
Utiliser pour la création des index bitmap
- Des mises à jour pas encore validées (commit) peuvent-elles être quand même écrites dans les fichiers de données et la cohérence de la base de données garantie en cas de plantage de l’instance ? Expliquez.
Oui. La journalisation permet de garder la cohérence. On pourra défaire les mises à jour effectuer si besoin (rollback)
- Qu’est-ce que le System Change Number (SCN) et à quoi sert-il ?
C’est un numéro qui est attribué à chaque transaction validée. Il permet à ORACL de savoir ou il en est en cas de reprise. En cas de problème, on rollback jusqu’au dernier numéro SCN. Il permet de savoir jusqu’où se remettre en cas de problème.
- Décrivez la convention pour nommer les processus d’arrière-plan
4 caractères (pour nommé les processus), le dernier pouvant être un chiffre (utilisé en cas de processus multiple).
- Dans quelles circonstances a-t-on intérêt à avoir une configuration de processus serveurs partagés et pourquoi ?
Lorsqu’on a beaucoup d’utilisateurs simultané, pour économisé des processus serveur qui sont des ressources lourdes à gérer par le système d’exploitation. Va nous permettre d’avoir de moins processus. Car si on a des processus dédiés (un par utilisateur), ça fait beaucoup à gérer pour l’OS. Performance en baisse.
- Quelles sont les limites du compte SYSTEM pour l’administration d’une BD ?
Il ne peut pas démarrer ou arrêter une base de données
Il ne peut pas créer de BD
Il ne peut pas récupérer de BD
- Quel est le processus chargé de la récupération de la BD après un arrêt anormal, CKPT, SMON ou PMON ? Que fait-il dans ce cas ?
SMON (System Monitor). Lors d’une relance, SMON prend la main et essaie de remettre la BD dans un état propre en utilisant les fichiers de journalisation (restauration des données selon besoin, rollback)
Il fait un rollforward pour terminer les transactions validées et un rollback pour restaurer les données si besoin.
- Quand DBWn écrit-il les données dans le fichier de données ?
Quand le Database Cache buffet est plein.
On essaie de travailler un max avec le cache car accès disque trop long. Mais lorsque le cache est full, il faut écrire sur disque. CKPT peut demander à Database Writer d’avancer l’écriture pour éviter de laisser trop de données en arrière.
- Parmi les privilèges SYSDBA et SYSOPER, quels sont ceux qui permettent de démarrer une base de données ? De la créer ?
SYSDBA peut tout faire. SYSOPER peut démarrer et arrêter une BD mais ne peut pas en créer
- Soit la configuration mémoire sous Windows : SGA_MAX_SIZE = 1500M, SGA_TARGET = 0, LOG_BUFFER= 524288, SHARED_POOL_SIZE=32M, DB_CACHE_SIZE = 256M. Quelle est le potentiel d’augmentation à chaud de la SGA ?
DIA28 + 14 (java_pool_size)
SGA_MAX_SIZE = 1500M
SGA_TARGET = 0
LOG_BUFFER = 524288 (–> 8M, histoire de granule, pas 4M car SGA_MAX_SIZE > 1G)
SHARED_POOL_SIZE = 32M
DB_CACHE_SIZE = 256M
SGA_TARGET = 0 → La gestion de la mémoire automatique n’est pas mise en oeuvre. Chacun des buffers est défini par l’administrateur ou sinon prend les tailles par défaut.
SGA = 256 (DB_CACHE_SIZE) + 32 (SHARED_POOL) + 24 (JAVA_POOL, default size) + 8 (REDO_LOG_BUFFER + granule) = 320M
Réponse: le potentiel d’amélioration = 1500 - 320 = 1180M disponible pour modif à chaud.
Le Java pool a 24M par défaut.
- Que doit-on mettre en oeuvre si l’on choisit la gestion automatique de la mémoire ?
Il faut que le paramètre STATICS_LEVEL soit à TYPICAL (défaut) ou ALL pour que la gestion automatique de la mémoire soit active.
- “Soit la configuration mémoire : MEMORY_MAX_TARGET = 900M, MEMORY_TARGET = 700M, SGA_TARGET = 300M, DB_4K_CACHE_SIZE = 16M, PGA_AGGREGATE_TARGET = 180M. Si l’instance manque de mémoire (SGA et PGA), jusqu’à quelle taille maximum théorique la SGA pourrait-elle s’étendre sans intervention du DBA? »
700 - 180 - 4 -16 = 500 Mo
MEMORY_MAX_TARGET = 900M
MEMORY_TARGET = 700M
SGA_TARGET = 300M
DB_4K_CACHE_SIZE = 16M
PGA_AGGREGATE_TARGET = 180M
MEMORY_TARGET ⇒ Gestion mémoire automatique
(Cas de gestion de mémoire automatique de la mémoire totale parce que MEMORY_MAX_TARGET )
700 - 16 (DB_4K_CACHE_SIZE) - 4 (granule) = 680M (SGA + PGA)
Il faut laisser la place pour la PGA (minimum 180M)
680 - 180 (PGA_AGGREGATE_TARGET) = 500M (SGA)
- Quels sont les processus démarrés par CKPT : DBWn, SMON, PMON, LGWR, ARCn ?
CKPT fait de la synchronisation, il besoin de lire les journaux et écrire dans les fichiers de données. Il démarre donc DBWn (Database Writer) et aussi le LGWR (Log Writer).
- Quel est le processus qui détecte la déconnexion abrupte d’un utilisateur ? CKPT, LGWR, SMON, PMON ? Que fait-il dans ce cas.
PMON, si cela arrive, PMON détecte. S’il y a des transactions en cours sans être validé, PMON lance un rollback.