امکان تغییر رفتار پیش فرض kill session در اوراکل 23c

ساخت وبلاگ

زمانی که sessionای را در اوراکل kill می کنیم، به صورت پیش فرض آن session در حالت SOFTء، kill خواهد شد:

SQL> ALTER SYSTEM KILL SESSION '1025,44801';
System altered.

جزییات اجرای این دستور را می توانیم در Alert Log ببنیم:

2023-12-19T13:32:18.731476+03:30
(4):A user has terminated a session.
KILL SESSION for sid=(1025, 44801): Reason = alter system kill session Mode = KILL SOFT -/-/-/- Requestor = USER (orapid = 55, ospid = 3267554, inst = 1) User = oracle Program = sqlplus@OEL8 (TNS V1-V3) Owner = Process: USER (orapid = 75, ospid = 3268895) User = 462710969 Program = plsqldev.exe Result = ORA-0

برای kill کردن session در حالت HARD می توانیم عبارت immediate را به انتهای دستور اضافه کنیم:

SQL> ALTER SYSTEM KILL SESSION '1025,43030' IMMEDIATE;
System altered.

مجددا با کمک Alert Log جزییات اجرای این دستور را هم خواهیم دید:

2023-12-19T13:33:07.749571+03:30
(4):A user has terminated a session.
KILL SESSION for sid=(1025, 43030): Reason = alter system kill session Mode = KILL HARD SAFE -/-/-/- Requestor = USER (orapid = 55, ospid = 3267554, inst = 1) User = oracle Program = sqlplus@OEL8 (TNS V1-V3) Owner = Process: USER (orapid = 75, ospid = 3268940) User = 462710969 Program = plsqldev.exe Result = ORA-0

در نسخه 23c اوراکل Hidden Parameterای به نام kill_session_force_ را اضافه کرده است که می توان از طریق آن، این رفتار پیش فرض را تغییر داد:

set linesize 1000
col Parameter format a20
col Session_Value format a14
col Instance_Value format a15
col DESC format a40
SQL> select * from (SELECT a.ksppinm "Parameter", b.ksppstvl "Session_Value", c.ksppstvl "Instance_Value", a.KSPPDESC "DESC" FROM x$ksppi a, x$ksppcv b, x$ksppsv c WHERE a.indx = b.indx AND a.indx = c.indx AND a.ksppinm LIKE '/_%' escape '/') where "Parameter" like '%_kill_session_force%' order by 1;
Parameter Session_Value Instance_Value DESC
-------------------- -------------- --------------- ----------------------------------------
_kill_session_force FALSE FALSE override session kill default to force
SQL> alter system set "_kill_session_force"=true;
System altered.

با اجرای مجدد دستور kill session، پی به این تغییر رفتار اوراکل خواهیم برد:

SQL> ALTER SYSTEM KILL SESSION '42,18441';
System altered.
2023-12-19T13:34:13.705625+03:30
(4):A user has terminated a session.
KILL SESSION for sid=(42, 18441): Reason = alter system kill session Mode = KILL HARD FORCE -/-/-/- Requestor = USER (orapid = 55, ospid = 3267554, inst = 1) User = oracle Program = sqlplus@OEL8 (TNS V1-V3) Owner = Process: USER (orapid = 74, ospid = 3268970) User = 462710969 Program = plsqldev.exe Result = ORA-0

ارائه خدمات مشاوره ، پشتیبانی و نصب و راه اندازی پایگاه داده اوراکل در سراسر کشور...................... تلفن: 09128110897 ایمیل:[email protected]

تالار های تخصصی...
ما را در سایت تالار های تخصصی دنبال می کنید

برچسب : نویسنده : خنجی niksaleh بازدید : 26 تاريخ : يکشنبه 17 دی 1402 ساعت: 16:28

خبرنامه