2014-09-03 10 views

ответ

2

Что вы можете сделать, это вызвать lsnrctl, утилиту Oracle, которая управляет слушателями.

Вы можете назвать это с Process.Start:

Dim startInfo As New ProcessStartInfo 
startInfo.FileName = "lsnrctl" 
startInfo.Arguments = "stop" 
startInfo.Verb = "runas" 
Process.Start(startInfo) 

Вы устанавливаете Verb в runas, чтобы запустить его в качестве администратора.

Для выполнения этой работы у вас должна быть папка с битами Oracle в вашем PATH. Обратите внимание, что вызов этого приведет к тому, что ваша установка Oracle не будет доступна извне, поскольку слушатели контролируют доступ к базам данных Oracle.

+0

Итак, как это остановить оракул от прослушивания порта 1521? –

+0

Вы останавливаете слушателя ... :) –

+0

«lsnrctl» - это утилита управления прослушивателем, и команды, похоже, останавливают утилиту. Пожалуйста, исправьте меня, если я ошибаюсь, но я думаю, вы говорите, что вышеупомянутая команда полностью остановит слушателя. –

1

Найдите файл listener.ora (Oracle_HOME \ network \ admin \ listener.ora). Этот файл имеет параметры для вашего слушателя. Измените номер порта. Сохраните изменения. Перезапустите слушателя.

Для правильного подключения к базе данных вам может потребоваться изменить номер порта в вашем tnsnames.ora соответственно.

+0

Итак, если я хочу сделать так, чтобы все внешние запросы на базу данных были заблокированы, я просто удаляю номера портов (по умолчанию 1521) из файла? –

+0

Нет, это просто изменяет номер порта. На данный момент ваш оригинальный вопрос не очень ясен. – Rene

+0

Итак, позвольте мне попробовать и повторить проблему, у меня есть программа, которая устанавливает oracle xe как часть процесса установки. Теперь, в конце процесса установки, я хочу, чтобы этот экземпляр oracle (используемый моим приложением) не прослушивал порт 1521. Мне нужно сделать это через код vb.net, на котором построено мое приложение. –