(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 Processor License
Oracle Database Personal Edition Named User Plus Software Update License & Support
Oracle Database Standard Edition 2 Named User Plus License
Oracle Database Personal Edition Named User Plus License
Купить Антивирус Dr.Web Server Security Suite для сервера
 
Другие предложения...
 
Курсы обучения   WWW.ITSHOP.RU
 
Другие предложения...
 
Магазин сертификационных экзаменов   WWW.ITSHOP.RU
 
Другие предложения...
 
3D Принтеры | 3D Печать   WWW.ITSHOP.RU
 
Другие предложения...
 
Новости по теме
 
Рассылки Subscribe.ru
Информационные технологии: CASE, RAD, ERP, OLAP
Новости ITShop.ru - ПО, книги, документация, курсы обучения
Программирование на Microsoft Access
CASE-технологии
OS Linux для начинающих. Новости + статьи + обзоры + ссылки
СУБД Oracle "с нуля"
Мастерская программиста
 
Статьи по теме
 
Новинки каталога Download
 
Исходники
 
Документация
 
 



    
rambler's top100 Rambler's Top100