Ctrl + C убивает пользователя sqlplus соединение - PullRequest
0 голосов
/ 19 декабря 2018

(простите за длинный пост, но это поможет дать более четкую картину)
БД: Oracle 12c
Хост: Linux 6.10
Расположение сервера: Чи и Бостон

В последнее время мыперенесли базу данных Oracle на новое место на сервере в Бостоне, которое находится в другой сети.У нас есть несколько баз данных, работающих на обоих серверах.

Проблема: Ctrl + C отключает сеанс sqlplus пользователей, когда они подключены к другому серверу / сети.

Ошибка: ORA-03135: соединение потеряно.

Версия клиента Oracle одинакова в обоих местах.

Пример: 1. Пользователь из Chi запустил сеанс sqlplus и подключается к базе данных в Бостоне, делает Ctrl + C, чтобы убить текущий запрос, но вместо того, чтобы убить запрос и вернуть запрос sqlplus, его сеанс отключается, и он должен снова войти в систему,

Пользователь из Бостона запускает сеанс sqlplus и подключается к базе данных в Чикаго, нажимает ctrl + c, чтобы завершить запрос, но вместо запроса sqlplus его сеанс отключается, и он должен снова войти в систему.

Еслипользователи в той же сети подключаются к любой базе данных, Ctrl + C не отключает сеанс.(Chi -> Chi работает отлично, Bos -> Bos работает отлично).

Сетевая команда или системный администратор Linux не видят никаких проблем с их стороны и не хотят тратить время на расследование.

Я как-то чувствую, что что-то между сетью не интерпретирует Ctrl + C, которые правильно отправляют сигнал SIGINT.Я не эксперт в сети и не сталкивался с подобным поведением в прошлом.

Кто-нибудь знает, что может вызывать отключение сеансов или указатель?

1 Ответ

0 голосов
/ 07 мая 2019

sqlplus.exe в основном всегда имел ошибку.Он был в инструменте, по крайней мере, около 2000 года (это было около версии 3.x, если я правильно помню).Запустите запрос, пока на экране прокручивается вывод, нажмите Ctrl + C только один раз, если вы поймете запрос в неправильный момент, когда завершится весь инструмент.Одно из самых больших разочарований этой ошибки заключается в том, что Oracle, похоже, не желает даже признать, что ошибка существует, не говоря уже о ее устранении.Существует как минимум два сценария, когда возникает ошибка, один из которых тривиально воспроизвести - выполнить запрос, сколько времени это займет, запустить его снова и когда вы приблизитесь к концу - но пока данные все еще прокручиваются на экране- нажмите Ctrl C только один раз.Это может занять одну или две попытки, чтобы получить правильное время, но без особых усилий вы можете воспроизвести ошибку.Что происходит в этом сценарии, легко понять, взаимодействие с базой данных прекратилось к тому времени, когда вы нажимаете Ctrl + C - но если экран прокручивается, то как узнать, что вы ближе к концу запроса?В целом невозможно гарантировать, что вы никогда не нажмете Ctrl + C во время этого окна упущенных возможностей - как кто-то может сказать, что это не ошибка, вне меня.

Существует по крайней мере еще одна ситуация, когдаошибка возникает, но в целом ее трудно воспроизвести, за исключением того, что когда она возникает, ее легко воспроизвести, поэтому я подозреваю, что при обмене данными с базой данных возникли проблемы с синхронизацией.Запустите запрос, представьте, что вы понимаете, что предложение where будет возвращать огромные объемы данных, поэтому, когда оно начинает отображать данные, вы нажимаете Ctrl + C.Обычно это безопасно, но время от времени это не безопасно - инструмент выйдет.Когда это произойдет, перезапустите sqlplus и повторно выполните тот же запрос, снова нажмите Ctrl + C один раз после того, как он начнет прокручивать - снова инструмент выйдет.Я случайно запускал этот тест много раз.Когда это происходит, вы можете делать один и тот же тест снова и снова, для развлечения я убивал сессию не менее полдюжины раз подряд, прежде чем вернуться к работе (введя правильное предложение where и не нажимая Ctrl + C).

В любом случае, дело в том, что каждый раз, когда кто-то мимолетно отвечает, что вам нужно быть осторожным, нажимайте Ctrl C только один раз.Это абсолютно не гарантия того, что вы будете в безопасности при запуске sqlplus.exe

...