2013-08-14 4 views
0

У меня есть сценарий оболочки (пакетное задание) для запуска пакета Oracle из среды unix. У меня нет доступа к системе оракула, чтобы убить сеанс.Как убить сеанс пакетной работы в Unix?

Из unix как убить сеанс.

В oracle я использовал ниже запрос, чтобы убить, но у меня нет привилегий.

системного ALTER KILL сессии '2181,52254'

QL Ошибка: ORA-01031: недостаточные привилегии

Пожалуйста, скажите мне, как убить сессию сценария оболочки в UNIX?

ответ

0
ps -aef | grep userID 

Ищите процесс, который хотите убить. Обратите внимание на идентификатор процесса, который является вторым столбцом.

kill -9 <processID> 
+0

Просто голова -9 - это сильное убийство. Используйте мудро. :) – dvai

+0

Я не узнал точный идентификатор сессии. Я вижу ниже список только .., который является последним сеансом. -bash-3.2 $ ps -aef | grep batchadm batchadm 2665 32627 0 07:51 pts/0 00:00:00 ps -aef batchadm 2666 32627 0 07:51 pts/0 00:00:00 grep batchadm корень 32622 4255 0 07:49? 00:00:00 sshd: batchadm [priv] batchadm 32626 32622 0 07:49? 00:00:00 sshd: batchadm @ pts/0 batchadm 32627 32626 0 07:49 pts/0 00:00:00 -bash – spyga

+0

Я не вижу сессию в Unix, но все же я мог видеть сеанс, который был найден в oracle .. v $ session table ... – spyga

0

Вы получаете процесс OS к kill, глядя на v$process.spid колонке (не pid!). Вы можете найти строку процесса v $, присоединив v$process.addr=v$session.paddr.

Конечно, вам нужно выполнить kill в ОС, где находится база данных, а не на клиенте базы данных. Вам нужна привилегия ОС; обычно в Unix, вы должны стать пользователем root или oracle на сервере базы данных.

Смежные вопросы