امکان تغییر رفتار پیش فرض 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 ایمیل:vahidusefzadeh@gmail.com

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *