Der Inhalt dieses Artikels befasst sich mit der Methode zum Überprüfen gesperrter Tabellen und zum Entsperren. Ich hoffe, dass er für Sie hilfreich ist.
--Die folgenden sind verwandte Tabellen
SELECT * FROM v$lock; SELECT * FROM v$sqlarea; SELECT * FROM v$session; SELECT * FROM v$process ; SELECT * FROM v$locked_object; SELECT * FROM all_objects; SELECT * FROM v$session_wait;
--Gesperrte Tabellen anzeigen
select b.owner,b.object_name,a.session_id,a.locked_mode from v$locked_object a,dba_objects b where b.object_id = a.object_id;
--Überprüfen Sie, welcher Benutzer und Prozess blockiert ist
select b.username,b.sid,b.serial#,logon_time from v$locked_object a,v$session b where a.session_id = b.sid order by b.logon_time;
--Überprüfen Sie den verbundenen Prozess
SELECT sid, serial#, username, osuser FROM v$session;
--3 Finden Sie die Seite heraus, Seriennummer, Betriebssystembenutzername, Maschinenname, Terminal der gesperrten Tabelle, Sperrtyp, Modus
SELECT s.sid, s.serial#, s.username, s.schemaname, s.osuser, s.process, s.machine, s.terminal, s.logon_time, l.type FROM v$session s, v$lock l WHERE s.sid = l.sid AND s.username IS NOT NULL ORDER BY sid;
Diese Anweisung findet die von allen DML-Anweisungen in der Datenbank generierten Sperren und kann dies auch Es kann festgestellt werden, dass
jede DML-Anweisung tatsächlich zwei Sperren generiert, eine ist eine Tabellensperre und die andere ist eine Zeilensperre.
--Töte die Prozess-Sid, Seriennummer
alter system kill session '210,11562'; Beim Verbinden müssen hier Leerzeichen vorhanden sein, sonst wird ein Fehler gemeldet, z als (alter system kill session '210,11562' ).
Das obige ist der detaillierte Inhalt vonEinführung in die Anzeige gesperrter Tabellen in Oracle und deren Entsperrung (Codebeispiel). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!