Как мне убить неуправляемого спида в Sybase? - PullRequest
2 голосов
/ 15 декабря 2008

В моей базе данных есть несколько мошеннических spid'ов, которые, как я вижу, спят, когда я вхожу как sa и использую sp_who, но попытки использовать kill <spid> для их устранения потерпели неудачу, и я не могу на самом деле не имеет доступа к самому серверу, чтобы отразить его. Есть ли другой способ убить эти вещи?

Ответы [ 2 ]

3 голосов
/ 18 декабря 2008

Системные процессы не могут быть убиты. Например, в выходных данных sp_who, где cmd равно NETWORK HANDLER, MIRROR HANDLER и CHECKPOINT SLEEP (или редко CHECKPOINT) и AUDIT PROCESS не могут быть убиты. Если они имеют статус «recv sleep», «send sleep», «alarm sleep» и «lock sleep», их можно убить.

В выводе sp_who вы не можете сказать, принадлежит ли процесс, статус которого «recv sleep», пользователю, который использует SQL Server, но может приостанавливать проверку результатов команды или указывает ли процесс, что пользователь перезагрузил компьютер или другой терминал и оставил неактивный процесс. Вы можете узнать больше о сомнительном процессе, запросив информацию в таблице sysprocesses. Например:

выберите hostprocess, имя_программы из sysprocesses, где spid = 8

Если имя_программы isql, вы знаете, что этот спид может быть убит. (И так далее ...)

0 голосов
/ 16 декабря 2008

У меня есть клиентское приложение, которое иногда делает подобные вещи. Клиент обычно находится в середине выбора, но больше не получает строки. (Это может быть курсор на стороне клиента, но я не уверен). Эти спиды кажутся неубиваемыми. Я должен найти пользователя и попросить его выйти из системы.

Другой сценарий, в котором я имел это, после ошибок или трассировки стека на сервере. Проверьте свой журнал ошибок, чтобы увидеть, есть ли там какие-нибудь хитрые записи. Если есть, то перезапуск будет вашим единственным вариантом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...