In Oracle können Sie den DBA-Benutzer verwenden, um die Anweisung „Benutzername, Lockwait, Status, Maschine, Programm aus v$session, wo Sid in auswählt“ auszuführen, um den Deadlock abzufragen. Wenn ein Ergebnis vorliegt, wird der Deadlock angezeigt .
Die Betriebsumgebung dieses Tutorials: Windows 10-System, Oracle 11g-Version, Dell G3-Computer.
1. Überprüfen Sie Deadlocks
1) Verwenden Sie den DBA-Benutzer, um die folgende Anweisung auszuführen: Sackgasse? Turm. Feldbeschreibung:
Benutzername: Der von der Deadlock-Anweisung verwendete Datenbankbenutzer.
Lockwait: Der Status des Deadlocks. Wenn Inhalt vorhanden ist, bedeutet dies, dass er Deadlock ist.
Status: Status, aktiv bedeutet Deadlock
Machine: Die Maschine, auf der sich die Deadlock-Anweisung befindet.
Programm: Aus welcher Anwendung stammen die blockierten Anweisungen hauptsächlich?
2) Verwenden Sie den DBA-Benutzer, um die folgenden Anweisungen auszuführen, um die blockierten Anweisungen anzuzeigen.
select username,lockwait,status,machine,program from v$session where sid in (select session_id from v$locked_object)
2. Lösung für den Deadlock
1) Den blockierten Prozess finden:
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) Den blockierten Prozess beenden: alter system kill session 'sid,serial#'; (wobei sid=l. session_id)
3) Wenn es immer noch nicht gelöst werden kann:
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;
Ersetzen Sie die Seite durch die Deadlock-Seite:
Empfohlenes Tutorial: „
Oracle Video TutorialDas obige ist der detaillierte Inhalt vonSo fragen Sie einen Deadlock in Oracle ab. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!