Maison >base de données >Oracle >Comment interroger une impasse dans Oracle

Comment interroger une impasse dans Oracle

WBOY
WBOYoriginal
2022-02-17 17:13:1832597parcourir

Dans Oracle, vous pouvez utiliser l'utilisateur dba pour exécuter l'instruction "select username, lockwait, status, machine, program from v$session Where sid in" pour interroger le blocage. S'il y a un résultat, le blocage sera affiché. .

Comment interroger une impasse dans Oracle

L'environnement d'exploitation de ce tutoriel : système Windows 10, version Oracle 11g, ordinateur Dell G3.

Comment interroger les blocages dans Oracle

1. Vérifiez les blocages

1) Utilisez l'utilisateur dba pour exécuter l'instruction suivante

select username,lockwait,status,machine,program from v$session where sid in
(select session_id from v$locked_object)

S'il y a un résultat de sortie, cela signifie qu'il y a un blocage et quelle machine peut voir le une impasse ? Description du champ :

Username : l'utilisateur de la base de données utilisé par l'instruction de blocage ;

Lockwait : l'état du blocage, s'il y a du contenu, cela signifie qu'il est bloqué.

Statut : Statut, actif signifie bloqué.

Machine : La machine sur laquelle se trouve l'instruction de blocage.

Programme : De quelle application proviennent principalement les instructions bloquées ?

2) Utilisez l'utilisateur dba pour exécuter les instructions suivantes afin d'afficher les instructions bloquées.

select sql_text from v$sql where hash_value in
(select sql_hash_value from v$session where sid in
(select session_id from v$locked_object))

2. Solution à l'impasse

1) Trouvez le processus bloqué :

SELECT s.username,l.OBJECT_ID,l.SESSION_ID,s.SERIAL#,
l.ORACLE_USERNAME,l.OS_USER_NAME,l.PROCESS
FROM V$LOCKED_OBJECT l,V$SESSION S WHERE l.SESSION_ID=S.SID;

2) Arrêtez le processus bloqué : modifiez la session de suppression du système 'sid,serial#' (où sid=l. session_id)

3) Si le problème ne peut toujours pas être résolu :

select pro.spid from v$session ses,
v$process pro
where
ses.sid=XX
and ses.paddr=pro.addr;

Remplacez le sid par le sid de blocage :

Tutoriel recommandé : "Tutoriel vidéo Oracle"

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn