ALTER SESSION KILL ¿¡ ´ëÇÏ¿©.
ALTER SYSTEM KILL SESSION ¿¡ ´ëÇÏ¿©
»ç¿ëÀÚ´Â ´ÙÀ½°ú °°Àº »óȲ¿¡¼ session À» kill ÇÏ·Á´Â ½Ãµµ¸¦ ÇÏ°Ô µÈ´Ù.
1. os ¿¡´Â process °¡ Á¸ÀçÇÏÁö ¾ÊÁö¸¸, v$session ¿¡´Â active ·Î Á¸ÀçÇÏ°í ÀÖÀ» °æ¿ì
2. shadow process ´Â »ì¾Æ Àִµ¥, client machine À» rebooting ÇÑ °æ¿ì
3. session ÀÌ °É°í ÀÖ´ø lock À» release ÇØ¾ß ÇÒ °æ¿ì
4. OS ³ª Oracle ÀÇ ÀÚ¿øÀ» Áö³ªÄ¡°Ô ¸¹ÀÌ »ç¿ëÇÏ¿© ¼º´ÉÀ» ÀúÇϽÃÅ°´Â process
±×·±µ¥, alter system kill session ('sid, serial#'); ÈÄ¿¡ ´ÙÀ½°ú °°Àº ¿¡·¯°¡ ¹ß»ýÇÒ °æ¿ì°¡ ÀÖ´Ù.
ora-00030, 00000, "user session ID does not exist"
// *Cause: The user session id no longer exists, probably because the
// session was logged out.
// *Action: Use a valid session ID.
--- ¿øÀΰú ´ëÃ¥
kill sessionÀ» ÇÒ ¼ö ¾ø´Â ÀÌÀ¯´Â PMONÀÌ ÀÌ¹Ì ÀÌ sessionÀ» deleteÇÏ°í ÀÖ´ÂÁßÀ̱⠶§¹®ÀÌ´Ù. Áï, PMON ÀÌ dead session À» clean-up ÇÏ°í ÀÖ´Â Áß¿¡´Â serial numberÀÇ °ªÀÌ Áõ°¡ÇÑ´Ù.
¹®Á¦´Â PMONÀÌ process¸¦ killÇÏ´Â ½Ã°£Àε¥, transactionÀÇ Å©±â¿¡ µû¶ó, PMONÀÇ rollback ½Ã°£ÀÌ °áÁ¤µÈ´Ù. ¸ÕÀú PMONÀº dead process¸¦ ã¾Æ³»¾î,ÀÌ process°¡ »ç¿ëÇÑ resource ¸¦ releaseÇÏ´Â ½Ãµµ¸¦ ÇÑ´Ù.
PMONÀº °è¼Ó ÀÌ ÀÛ¾÷À» ½ÃµµÇÏ´Ù°¡ ¸¶Ä§³», free bufferÀÇ ºÎÁ·À¸·Î ´õ ÀÌ»óresource¸¦ free-up ÇÏÁö ¸øÇÏ°Ô µÈ´Ù.
ÀÌ ¶§, ÀÌ process¸¦ deleteÇÏ°í ÀÖ´Ù´Â message¸¦ trace file¿¡ Ãâ·ÂÇϴµ¥,ÀÌ°ÍÀº process¸¦ deleteÇÏ´Â µ¥ ÇÊ¿äÇÑ resource(data cache ³»ÀÇ free buffer)ÀÇ ºÎÁ·À¸·Î À§ÀÇ ÀÛ¾÷ÀÌ Áö¿¬µÇ°í ÀÖ´Ù´Â ÀǹÌÀÌ´Ù.
PMONÀÌ process ¸¦ clean-up ÇÒ ¶§ °É¸®´Â ½Ã°£Àº, 5ºÐ¿¡¼ 24 ½Ã°£±îÁö ¼Ò¿äµÉ ¼ö ÀÖ´Ù. ¹®Á¦´Â ÀÌ process°¡ hold ÇÏ°í ÀÖ´Â lockÀ¸·Î ÀÎÇØ Æ¯Á¤ ÀÛ¾÷ÀÌ ¼öÇàµÇÁö ¸øÇÏ´Â µ¥ ÀÖ´Ù. MTS ¸¦ »ç¿ëÇÒ ¶§´Â configuration MTS setting,sqlnet.expire_time »ç¿ë)¿¡ µû¶ó ´Ù¸£Áö¸¸, clean-up ÀÛ¾÷À» Çϴµ¥ 72 ½Ã°£ÀÌ ¼Ò¿äµÈ °æ¿ìµµ ÀÖ´Ù.
¾ÆÁ÷±îÁö´Â PMONÀÌ ÀÛ¾÷À» ¸¶Ä¥ ¶§±îÁö ±â´Ù¸®´Â ¹æ¹ý ¶Ç´Â db¸¦ restartupÇÏ´Â ¹æ¹ý ¹Û¿¡´Â ¾ø´Ù.
--- PMON ÀÇ ÀÛ¾÷
PMONÀº network failure ³ª ±âŸÀÇ ¿øÀÎÀ¸·Î »ý±ä old process connectionÀ»clean-up ÇÏ´Â ¿ªÇÒÀ» ÇÑ´Ù. ±×·±µ¥, PMON Àº clean-up ÇØ¾ß ÇÏ´Â connection Áß¿¡ Á¤ÇØÁø °³¼ö ¸¸ÅÀÇ transaction À» rollback ÇÒ ¼ö Àִµ¥, ÀÌ °ªÀº initSID.ora ÀÇ cleanup_rollback_entries(default = 20) ¿¡ ÀÇÇØ °áÁ¤µÈ´Ù.
¿¹¸¦ µé¾î, 1000 °³ÀÇ uncommitted update°¡ ÀÖ´Ù¸é, ÀÏÁ¤ÇÑ ½Ã°£¸¶´Ù cleanup_rollback_entries ÀÇ °³¼ö ¸¸ÅÀÇ record ¸¸ rollback ÇÒ ¼ö ÀÖÀ¸¹Ç·Î ÀÌ ÀÛ¾÷ µ¿¾È¿¡ lock Àº ±×´ë·Î À¯ÁöµÈ´Ù.
PMON Àº À§ÀÇ ÀÛ¾÷ ÀÌ¿Ü¿¡ DB maintenance ¿ªÇÒÀÌ ÀÖÀ¸¹Ç·Î, À§ÀÇ rollback À̺ñ±³Àû ºü¸£°Ô 󸮵ÇÁö ¸øÇÒ ¼öµµ ÀÖ´Ù. ÀÌ·¯ÇÑ rollbackÀ» ºü¸£°Ô ó¸®Çϱâ À§ÇÏ¿© cleanup_rollback_entries ¸¦ ´Ã¸± ¼öµµ ÀÖ´Ù. ±×·¯³ª, ±× ¸¸Å ÀÏÁ¤ ½Ã°£ µ¿¾È PMON ÀÇ ÀÛ¾÷ÀÌ ¸¹¾ÆÁö°Ô µÇ¹Ç·Î, ´Ù¸¥ »ç¿ëÀÚµéÀÇ ÀÛ¾÷ ¿äûÀÌ ´À·ÁÁö°Ô µÇ´Â trade-off °¡ ÀÖÀ¸¹Ç·Î, ½ÅÁßÈ÷ °í·ÁÇÑ ÈÄ¿¡ ¼öÁ¤ÇÏ´Â °ÍÀÌ ¹Ù¶÷Á÷ÇÏ´Ù.
alter system kill session ¿¡ ÀÇÇؼµµ À§¿Í °°ÀÌ rollback ÀÌ ÀÌ·ç¾îÁö´Âµ¥, ÀÌ session ÀÌ ¿ÏÀüÈ÷ clean-up µÇ±â Àü±îÁö v$session, v$process¿¡ ³²¾Æ ÀÖ°Ô µÈ´Ù.
--- ALTER SYSTEM KILL SESSION À» Çϱâ Àü¿¡ ...
kill session À» ¿øÇÒ °æ¿ì´Â ´ÙÀ½ÀÇ ¼ø¼´ë·Î ÀÛ¾÷ÇÏ´Â °ÍÀÌ ÁÁ´Ù.
1. kill the user process first
2. wait for 3 - 4 minutes
3. query v$session
4. if any information find in v$session, query v$lock
like
select count(*) from v$lock where SID ='sid';
À§ÀÇ count(*) °¡ 0 ÀÌ ¾Æ´Ï¶ó¸é, ¾ÆÁ÷ PMON ÀÌ rollbackÀ» ³¡³»Áö ¸øÇÑ °æ¿ìÀ̹ǷΠ´Ù½Ã ¾ó¸¶ ÈÄ¿¡ v$lock À» Á¶È¸ÇÏ¿© lock ÀÇ °³¼ö°¡ °¨¼ÒÇÏ¿´´ÂÁö ¹Ýº¹ÀûÀ¸·Î È®ÀÎÇÑ´Ù.
¸¸¾à, ÀÌ °ªÀÌ ÀüÇô º¯ÇÏÁö ¾Ê¾Ò´Ù¸é, ALTER SYSTEM KILL SESSION À» ¼öÇàÇÏ°ív$session, v$lockÀ» query ÇÏ¿© º¯È°¡ ÀÖ´ÂÁö È®ÀÎÇÏ¿© º¯È°¡ ÀÖ´Ù¸é, Á» ´õ ±â´Ù¸°´Ù.
±×·¡µµ, v$lock ÀÇ count(*) °¡ 0 ÀÌ µÇÁö ¾ÊÀ» °æ¿ì, ¸¶Áö¸·À¸·Î ¼öÇàÇÒ ¼ö ÀÖ´Â À¯ÀÏÇÑ ¹æ¹ýÀº instance ¸¦ restartup ÇÏ´Â °ÍÀÌ´Ù.
|