(495) 925-0049, ITShop интернет-магазин 229-0436, Учебный Центр 925-0049
  Главная страница Карта сайта Контакты
Поиск
Вход
Регистрация
Рассылки сайта
 
 
 
 
 

Принудительное завершение сеансов Oracle

Источник: all-oracle

Рекомендовано для:
  • Oracle Database 9i R1
  • Oracle Database 9i R2
  • Oracle Database 10g R1
  • Oracle Database 10g R2
  • Oracle Database 11g R1
 

Средствами SQL*Plus

Сеансы могут быть завершены средствами SQL*Plus используя SQL предложение ALTER SYSTEM KILL SESSION.
Во-первых, идентифицируйте сеанс, который требуется завершить:

SELECT SID,
       SERIAL#,
       OSUSER,
       PROGRAM
FROM V$SESSION;
       SID    SERIAL# OSUSER                         PROGRAM
---------- ---------- ------------------------------ ---------------
         1          1 SYSTEM                         ORACLE.EXE
         2          1 SYSTEM                         ORACLE.EXE
         3          1 SYSTEM                         ORACLE.EXE
         4          1 SYSTEM                         ORACLE.EXE
         5          1 SYSTEM                         ORACLE.EXE
         6          1 SYSTEM                         ORACLE.EXE
        20         60 SYSTEM                         DBSNMP.EXE
        43      11215 TEST1                          SQLPLUSW.EXE
        33       5337 TEST2                          SQLPLUSW.EXE

Полученные значения SID и SERIAL# указываются в SQL предложении:

ALTER SYSTEM KILL SESSION 'sid,serial#';

Например, для завершения сеанса пользователя TEST1 SQL предложение будет выглядеть так:

ALTER SYSTEM KILL SESSION '43, 11215';

В некоторых ситуациях процесс oracle не может быть завершен немедленно. В таких случаях сеанс помечается на прерывание. И будет уничтожен, как только будет возможно.

Предложение ALTER SYSTEM KILL SESSION самый безопасный способ прекращения сеанса Oracle. Если сеанс, помеченный на завершение, не может быть завершен в течение некоторого времени, то он может быть завершен на уровне операционной системы. Завершение на уровне операционной системы может быть опасно, и может привести к неработоспособности экземпляра.
Есть возможность завершить сеанс форсировано, добавлением ключевого слова IMMEDIATE:

ALTER SYSTEM KILL SESSION 'sid,serial#' IMMEDIATE;

Например, для завершения сеанса пользователя TEST1 из вышеприведенного примера, команда будет выглядеть так:

ALTER SYSTEM KILL SESSION '43, 11215' IMMEDIATE;

Это позволит избежать использования orakill.exe в Windows, или использование команды kill в *NIX системах.

В операционной системе Windows

Для завершения сеанса в операционной системе Windows, определяем сеанс:

SELECT S.SID,
       P.SPID,
       S.OSUSER,
       S.PROGRAM
FROM V$PROCESS P,
     V$SESSION S
WHERE P.ADDR = S.PADDR;
       SID SPID      OSUSER                         PROGRAM
---------- --------- ------------------------------ ---------------
         1 310       SYSTEM                         ORACLE.EXE
         2 300       SYSTEM                         ORACLE.EXE
         3 309       SYSTEM                         ORACLE.EXE
         4 299       SYSTEM                         ORACLE.EXE
         5 302       SYSTEM                         ORACLE.EXE
         6 350       SYSTEM                         ORACLE.EXE
        20 412       SYSTEM                         DBSNMP.EXE
        43 410       TEST1                          SQLPLUSW.EXE
        33 364       TEST2                          SQLPLUSW.EXE

Полученные значения SID и SERIAL# указываются в командной строке:

C:> orakill ORACLE_SID spid

Например, для завершения сеанса пользователя TEST1, команда будет выглядеть так:

C:> orakill 43 410

Сеанс будет завершен немедленно, и ресурсы системы будут освобождены для использования другими сеансами.

В операционных системах семейства *NIX

Для завершения сеанса средствами операционной системы семейства *NIX, во-первых, идентифицируйте сеанс, аналогично способу, описанному для Windows, выполнив SQL команду. Далее запоминаем значение SPID сеанса, который требуется завершить, и выполняем команду:

kill -9 spid

Например, для завершения сеанса пользователя TEST1, команда будет выглядеть так:

kill -9 410

Завершенный сеанс будет завершен немедленно и освободит используемые ресурсы.
Если, вы сомневаетесь, то проверить SPID на соответствие PROCESSID в UNIX можно выполнив:

ps -ef / grep ora

Ссылки по теме


 Распечатать »
 Правила публикации »
  Написать редактору 
 Рекомендовать » Дата публикации: 18.05.2009 
 

Магазин программного обеспечения   WWW.ITSHOP.RU
Oracle Database Standard Edition 2 Named User Plus License
Oracle Database Personal Edition Named User Plus Software Update License & Support
Oracle Database Personal Edition Named User Plus License
Oracle Database Standard Edition 2 Processor License
VMware Horizon Apps Standard, v7 : 10 Pack (Named User)
 
Другие предложения...
 
Курсы обучения   WWW.ITSHOP.RU
 
Другие предложения...
 
Магазин сертификационных экзаменов   WWW.ITSHOP.RU
 
Другие предложения...
 
3D Принтеры | 3D Печать   WWW.ITSHOP.RU
 
Другие предложения...
 
Новости по теме
 
Рассылки Subscribe.ru
Информационные технологии: CASE, RAD, ERP, OLAP
Новости ITShop.ru - ПО, книги, документация, курсы обучения
Программирование на Microsoft Access
CASE-технологии
СУБД Oracle "с нуля"
Новые материалы
Adobe Photoshop: алхимия дизайна
 
Статьи по теме
 
Новинки каталога Download
 
Исходники
 
Документация
 
 



    
rambler's top100 Rambler's Top100