0% ont trouvé ce document utile (0 vote)
15 vues3 pages

Analyse des Verrous dans une Base de Données

Transféré par

omar.zerouki.01
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
15 vues3 pages

Analyse des Verrous dans une Base de Données

Transféré par

omar.zerouki.01
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

HAI901I : TP noté 3

1. Préambule
Pour les besoins du TP, deux usagers ont été créés au sein de la BD master. Un de ces usagers se
nomme Gandalf (nom du schéma utilisateur). Différents droits ont été donnés par Gandalf, à différents
usagers, et sur une table spécifique. Le second usager créé en a profité pour verrouiller un ou plusieurs
tuples de la table considérée. L’objectif du TP est de caractériser la table, donnée en consultation, à
l’aide de différentes vues du méta-schema, et de retrouver en définitive le ou les tuples verrouillé(s), et
par quel usager.

2. Examen : l’objectif est à atteindre au travers d’une série de


questions
Vous aurez à donner les requêtes exploitées et les résultats obtenus pour chaque question.

2.1 Question 1
A l’aide de la vue dba_tab_privs, retrouver la table recherchée, ainsi que les privilèges accordés à
differents usagers par Gandalf.

2.2 Question 2
Afficher le contenu de la table consultable de Gandalf pour la fonction ’ouvrier’.

2.3 Question 3
Lister les blocs de données montés en mémoire vive pour la table consultable de Gandalf (à l’aide
de v$bh et dba_objects). Y a t’il des blocs présents en plusieurs copies ? Y a t’il des blocs qui ont été
accédés en écriture (voir attribut dirty) ? Quel est le nombre de blocs de données en mémoire vive pour
cette table ?

2.4 Question 4
Consulter la vue dba_tables pour obtenir des informations (nombre de blocs, nombre de tuples,
taille moyenne des tuples) sur l’organisation physique pour le schéma Gandalf et la table consultable.
les statistiques sur la table ont déjà été collectées par l’usager Gandalf.

2.5 Question 5
Exploiter à bon escient le paquetage dbms_rowid pour voir dans quel(s) bloc(s) sont hébergés les
tuples de la table.

1
HAI901I 2023-2024 2

2.6 Question 6
Exploiter la vue dba_segments et vérifier que le bloc d’en-tête est bien celui indiqué via l’attribut
class# de v$bh

2.7 Question 7
Consulter le ou les verrous posés avec la vue v$transaction (attributs addr, name et start_time).
Donner le nom des transactions si il y a lieu.

2.8 Question 8
Un verrou a été posé sur la table consultable de Gandalf, retrouver par qui a été posé le verrou et
sur quel object à l’aide des vues v$locked_object et dba_objects.

2.9 Question 9
Ecrivez une requête exploitant v$lock et v$session pour identifier les sessions bloquantes et sessions
bloquées, qui est bloqué ? depuis combien de temps, quels sont les types de verrous ?

2.10 Question 10
Faîtes en sorte d’utiliser également les vues dba_objects et v$locked_object, pour enrichir la re-
quête précédente.

2.11 Question 11
La vue v$session permet de retrouver les tuples verrouillés avec les attributs row_wait_obj#,
row_wait_file#, row_wait_block#, row_wait_row#. Vous construirez une requête tirant parti de
v$session, v$locked_object et dba_objects pour retrouver le numéro du tuple verrouillé. Une fois ce
numéro connu, vous pourrez exploiter la fonction rowid_row_number du paquetage dbms_rowid et
la table impactée pour retrouver le tuple concerné.

3. Annexe

3.1 Annexe 1
Les correspondances nombre <-> type de classe pour l’attribut class# de la vue v$bh sont données :
HAI901I 2023-2024 3

nombre type bloc


1 data block
2 sort block
3 save undo block
4 segment header
5 save undo header
6 free list
7 extent map
8 1st level bitmap block
9 2nd level bitmap block
10 3rd level bitmap block
11 bitmap block
12 bitmap index block
13 file header block
14 unused
15 system undo header
16 system undo block
17 undo header
18 undo block

Vous aimerez peut-être aussi