Oracle: Kill the killed
Adatbázisokkal kapcsolatos cikkek / Oracle (3105 katt)
Az Oracle adatbázis használata során találkoztam azzal a problémával, hogy egy, az ALTER SYSTEM KILL SESSION 'sid,serial#,@inst_id'; utasítással leállított session ott maradt hosszabb ideig KILLED statusban. Ez gondot okozhat, ha az adott folyamat a lelövés ellenére sem engedett el valamilyen erőforrást.
Némi keresgélés után rátaláltam az orakill.exe programra, amely az Oracle bin könyvtárában található, és le lehet vele lőni az ilyen beragadt folyamatokat.
Ennek a leírása a következő volt:
orakill.exe
Usage: orakill sid thread
where sid = the Oracle instance to target
thread = the thread id of the thread to kill
The thread id should be retrieved from the spid column of a query such as:
select spid, osuser, s.program from
v$process p, v$session s where p.addr=s.paddr
Tovább lehet alakítani a fenti lekérdezést, figyelembe véve az Oracle RAC esetét is:
select s.inst_id,
p.spid,
s.sid,
s.osuser,
s.program
from gv$process p,
gv$session s
where p.inst_id = s.inst_id
and p.addr = s.paddr
and s.program = 'keszlet.exe'
and s.status = 'KILLED';
Példa a parancssorból történő futtatásra, miután az előző lekérdezés segítségével meghatároztuk a spid-et:
orakill.exe orarac1 6096
További infók:
https://www.oraclenext.com/2015/06/killing-process-using-orakillexe-on.html
https://oracle-base.com/articles/misc/killing-oracle-sessions
Előző oldal | Kapitány |