Прослушиватель Oracle не запускается

Обновлено: 21.11.2024

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

SID и SERVICE_NAMES

Важно понимать (небольшую) разницу между тем, что Oracle определяет как SID, и SERVICE_NAME , поскольку позже мы будем использовать эту информацию для создания правильной строки подключения.

В Oracle системный идентификатор (или SID ) представляет собой локальный идентификатор длиной до восьми символов, который используется для идентификации конкретной базы данных и отличия ее от других баз данных в системе.

SERVICE_NAMES, с другой стороны, представляют собой имена, с помощью которых могут быть подключены экземпляры базы данных. SERVICE_NAME обычно соответствует формату SID, за которым следует домен базы данных, например: DB_UNIQUE_NAME.DB_DOMAIN

Прослушиватель TNS

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

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

Имена и конфигурация TNS

При подключении к базе данных Oracle обычно ваш сервер базы данных будет иметь tnsnames.ora , файл конфигурации, который информирует сервер о NET_SERVICE_NAMES, которые являются допустимыми подключениями к базе данных. По умолчанию этот файл находится в папке ORACLE_HOME/network/admin .

Например, дескриптор NET_SERVICE_NAME в tnsnames.ora может иметь следующий формат:

Строка подключения

Получив немного больше информации о том, как Oracle на самом деле подключается к базам данных, мы теперь можем посмотреть, как форматируются строки подключения.

Подключение через TNS Name/NET_SERVICE_NAME

При подключении через NET_SERVICE_NAME, как указано в файле конфигурации tnsnames.ora, вы должны использовать имя пользователя , пароль , а затем добавить к NET_SERVICE_NAME символ @, например:

Таким образом, для нашего предыдущего дескриптора NET_SERVICE_NAME выше фактическая NET_SERVICE_NAME, которую мы определили, была myDatabaseNetService , поэтому наша строка подключения может выглядеть примерно так:

Подключиться через SERVICE_NAME

При подключении через SERVICE_NAME вам также потребуется добавить хост и порт вместе с символом / перед самой SERVICE_NAME:

Подключение через SID

Наконец, при подключении без настроенного NET_SERVICE_NAME или даже SERVICE_NAME вы можете сделать это напрямую через SID, используя символ : вместо символа /, как в строке подключения SERVICE_NAME:

Вывод: в этом руководстве вы узнаете о прослушивателе Oracle и о том, как использовать команды управления прослушивателем для управления прослушивателем.

Введение в Oracle Listener

Прослушиватель — это отдельный процесс сервера базы данных, который выполняется локально на сервере базы данных или удаленно в среде Oracle RAC.

На следующем рисунке показана архитектура базы данных Oracle и местонахождение слушателя:

Когда приходит запрос клиента, слушатель сначала получает его. Затем прослушиватель устанавливает соединение между клиентом и экземпляром базы данных.

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

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

Команды управления Oracle Listener

Чтобы запустить прослушиватель, используйте команду LSNCTRL из командной строки в Windows или терминала в Linux:

Введите команду справки, чтобы увидеть все доступные параметры:

Вот результат:

Вы можете использовать все эти команды для управления слушателем. Давайте воспользуемся командой состояния:

В выходных данных отображается состояние прослушивателя, например псевдоним, версия, дата начала, время безотказной работы, файл трассировки, безопасность, файлы параметров прослушивателя, файлы журналов прослушивателя и сводка конечной точки прослушивания.

Теперь введите команду остановки:

После того, как слушатель прекратит прослушивание, вы больше не сможете подключиться к базе данных Oracle. Любая попытка подключения к базе данных Oracle приведет к следующей ошибке:

Обратите внимание, что все соединения, установленные до остановки прослушивателя, не будут затронуты.Поскольку остановка прослушивателя предотвращает входящие подключения, она не отключает те, которые уже подключены.

Используйте команду запуска, чтобы запустить прослушиватель:

Чтобы выйти из прослушивателя, используйте команду выхода:

Еще один способ выполнить команду прослушивателя — через командную строку, не заходя в интерфейс управления прослушивателем. Например, чтобы просмотреть состояние прослушивателя, вы можете использовать следующую команду в командной строке в Windows или терминале в Linux:

В Windows прослушиватель Oracle имеет службу, работающую как прослушиватель TNS. Вы также можете контролировать состояние слушателя с помощью этой службы, останавливая и запуская ее.

В этом руководстве вы узнали об Oracle Listener и о том, как использовать команды для управления прослушивателем.

В Oracle прослушиватель — это процесс, который выполняется на компьютере сервера базы данных. Он управляет трафиком входящих запросов на подключение от клиентов к серверу базы данных и, следовательно, очень важен. Каждый раз, когда клиент запрашивает сетевой сеанс с сервером, прослушиватель получает этот запрос клиента. Прослушиватель проверит, соответствует ли информация о клиенте информации о прослушивателе, и тем самым предоставит (или отклонит) запрос. Чтобы узнать больше о слушателях, нажмите здесь.

Как правило, файл listener.ora можно найти в каталоге $ORACLE_HOME/network/admin или ORACLE_BASE\ORACLE_HOME\network\admin на платформах Unix и Windows соответственно.

При возникновении проблем с прослушивателем пользователь, скорее всего, столкнется с ORA-12541.

Проблема

Сообщение ORA-12541 гласит: «TNS не слушает». Это происходит, если слушатель либо не работает, когда пытается установить соединение, либо если он не запущен или неправильно настроен. Кроме того, это может быть вызвано проблемой подключения к сети.

Чтобы выяснить, что может быть причиной проблемы, выполните действия, описанные ниже.

Решение

Во-первых, убедитесь, что прослушиватель запущен и работает. Для этого перейдите в Панель управления в Службы под NT или в программу управления прослушивателем (LSNRCTL).

C:\Documents and Settings\ME>статистика lsnrctl

Это должно показать текущий статус слушателя. Если прослушиватель в настоящее время не запущен, перезапустите службу прослушивателя, выполнив команду «net start», заполнив «XX» используемой версией:

C:\Documents and Settings\ME>net start OracleOraDbXXg_home1TNSListener

Если прослушиватель запущен и работает, проблема может заключаться в том, что прослушиватель не был связан с правильным экземпляром или протоколом. Чтобы убедиться, что все экземпляры верны, вы можете получить основную информацию о прослушивателе и параметрах конфигурации с помощью простых команд, таких как команда STATUS. Команда состояния предоставит основную информацию о прослушивателе, а также о настроенных адресах протоколов, сводке зарегистрированных служб и обработчиках служб, выделенных для каждой службы. Существует 4 типа статуса: готов, заблокирован, готов/вторичен и неизвестен. Ниже приведены описания каждого сигнала состояния.

  • Готово: экземпляр может принимать соединения.
  • Заблокировано: экземпляр не может принимать подключения
  • ГОТОВЫЙ/ДОПОЛНИТЕЛЬНЫЙ: дополнительный экземпляр в основной/дополнительной конфигурации Oracle9i Real Application Clusters, который готов принимать подключения
  • НЕИЗВЕСТНО: статус неизвестен, поскольку экземпляр зарегистрирован статически в файле listener.ora, а не динамически при регистрации службы.

Ниже приведен частичный пример команды STATUS от Oracle:

Подключение к (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=net))) STATUS LISTENER ———————— Псевдоним LISTENER Version
< em>TNSLSNR для Solaris: версия 9.2.0.2.0 — дата начала разработки…

Если вам по-прежнему не удается запустить прослушиватель, вы можете удалить его и создать новый в помощнике по настройке сети.

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

Заглядывая вперед

Выполнение правильных действий по настройке является ключом к успешному установлению соединения с прослушивателем. Для получения дополнительной информации ознакомьтесь с документацией Oracle по настройке и администрированию прослушивателя здесь.

Чтобы избежать будущих проблем с прослушивателем, пользователи Oracle должны активно отслеживать и обеспечивать безопасность. Один из первых и самых простых способов защитить прослушиватель — зашифровать его паролем, чтобы только авторизованные пользователи могли просматривать и изменять настройки.

Помимо безопасности, всегда рекомендуется постоянно отслеживать и просматривать файл журнала прослушивателя на наличие любого из следующих условий, которые могут вызвать проблемы с прослушивателем:

  • Нерегулярное время установления соединения.
  • Проблемы с подключением и отказы
  • Непредвиденное отключение прослушивателя, которое может привести к DOS-атаке

Если у вас по-прежнему возникают проблемы с ORA-12541 или другие проблемы со слушателями, обратитесь за профессиональной помощью к системному администратору баз данных или к лицензированному консультанту Oracle.

ВНИМАНИЕ! Некоторые изображения могут неправильно загружаться в статье базы знаний. Если вы видите неработающее изображение, щелкните правой кнопкой мыши и выберите «Открыть изображение в новой вкладке». Приносим извинения за неудобства.

Ошибка: "ORA-12541: TNS: нет прослушивателя"

Идентификатор статьи: 159658

Обновлено:

Товары

Проблема/Введение

Вы видите ошибку "ORA-12541: TNS: нет прослушивателя" на сервере Symantec Data Loss Prevention Enforce. Узнайте, как проверить состояние службы прослушивателя Oracle и при необходимости запустить или перезапустить службу.

ORA-12541: TNS: нет слушателя

Причина

Основной причиной может быть ряд проблем, начиная от остановленного прослушивателя, неправильно зарегистрированного и поврежденного файла конфигурации прослушивателя.

Разрешение

На сервере Oracle выполните следующие действия, чтобы проверить состояние прослушивателя и запустить его, если он не запущен.

  1. Откройте командную строку с повышенными правами
  2. Введите статус lsnrctl

СТАТУС СЛУШАТЕЛЯ
--------------------------------------
Псевдоним СЛУШАТЕЛЯ
Версия TNSLSNR для 64- бит Windows: Версия 11.2.0.4.0 - Produ
ction
Дата начала 02-JUN-2016 07:04:49
Время работы 46 дней 6 часов. 43 мин. 18 секунд
Уровень трассировки отключен
Безопасность включена: Аутентификация локальной ОС
SNMP ВЫКЛЮЧЕН
Файл параметров прослушивателя C:\oracle\product\11.2.0.4\db_1\network\admin\listener .ora
Файл журнала прослушивателя C:\oracle\diag\tnslsnr\ИМЯ_СЕРВЕРА\listener\alert\log.xml
Сводка конечных точек прослушивания.
(DESCRIPTION=(АДРЕС=(ПРОТОКОЛ=tcp)(HOST=HOSTIPADDRESS)(PORT=1521)))
(DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(PIPENAME=\\.\pipe \PROTECTipc)))
Сводка услуг.
У службы "CLRExtProc" 1 экземпляр(ы).
Экземпляр "CLRExtProc", статус UNKNOWN, имеет 1 обработчик (ы) для этой службы.
У службы "защита" 1 экземпляр(а).
Экземпляр «защитить», статус ГОТОВ, имеет 1 обработчик(и) для этой службы.
Команда выполнена успешно

Если служба прослушивателя «защита» не ГОТОВА, используйте следующую команду, чтобы запустить прослушиватель.

запуск lsnrctl

TNSLSNR для 64-разрядной версии Windows: версия 11.2.0.4.0 — Production
Файл системных параметров — C:\oracle\product\11.2.0.4\db_1\network\admin\listener.ora
Сообщения журнала записываются в C:\oracle\diag\tnslsnr\SERVERNAME\listener\alert\log.xml
Прослушивание: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=tehb0x-2008)(PORT= 1521)))
Прослушивание: (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(PIPENAME=\\.\pipe\PROTECTipc)))

После запуска слушателя подождите несколько минут и выполните следующую команду:

службы lsnrctl

Сводка услуг.
У службы "CLRExtProc" 1 экземпляр(ы).
Экземпляр "CLRExtProc", статус UNKNOWN, имеет 1 обработчик (ы) для этой службы.
Обработчик(и):
"DEDICATED" установлен:0 отклонен:0
ЛОКАЛЬНЫЙ СЕРВЕР
У службы "protect" есть 1 экземпляр(ы).
Экземпляр «защитить», статус ГОТОВ, имеет 1 обработчик(и) для этой службы.
Обработчик(и):
"DEDICATED" установлен:0 отклонен:0 состояние: готов
ЛОКАЛЬНЫЙ СЕРВЕР
Команда выполнена успешно

Ожидаемый результат: служба "защита" указана в списке и имеет статус ГОТОВ.

Читайте также: