Oracle net manager настройка

Обновлено: 06.07.2024

У нас есть приложение, работающее локально, где мы видим следующую ошибку:

ORA-12514: TNS: слушатель в настоящее время не знает об услуге, запрошенной в дескрипторе соединения

Я протестировал соединение, TNSPing которое было разрешено правильно, и попытался SQLPlus установить соединение, которое не удалось с той же ошибкой, что и выше Я использовал этот синтаксис для SQLPlus :

Мы убедились, что:

  • прослушиватель TNS на сервере работает.
  • Сам Oracle на сервере работает.

Мы не знаем о каких-либо изменениях, которые были сделаны в этой среде. Что-нибудь еще мы можем проверить?

Какую команду TNSPing (с параметрами) вы использовали? когда вы говорите «работает локально», вы имеете в виду, что приложение подключается к базе данных на том же хосте? Кроме того, каково содержимое вашего файла sqlnet.ora? какие версии указаны для sqlplus и tnsping, и вы уверены, что они находятся в одном и том же ORACLE_HOME? попробуйте перезапустить базу данных. Так как они должны сообщить Слушателю об их существовании при запуске, это может решить вашу проблему. ALTER SYSTEM REGISTER менее радикальна, чем перезапуск базы данных.

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

Однажды я обновился tnsnames.ora до:

тогда я побежал:

Успех! Слушатель в основном говорит вам, что какое бы имя_службы вы не использовали, оно не является действительным сервисом в соответствии с БД.

(* Я запускал sqlplus с клиентской рабочей станции Win7 на удаленную БД и обвинял администраторов БД;) *)

Как я могу запросить БД, если я не могу даже подключиться к ней? Можете ли вы напрямую подключиться к серверу БД и запустить оттуда sqlplus? это может быть не тот случай, когда несколько клиентов / серверов установлены или использовались для установки на одном компьютере. (tnsping выводит местоположение каталога, который он использует) - в моем случае, listener.ora в этом каталоге содержал информацию, относящуюся к старому экземпляру базы данных, который я удалил - быстрым и грязным способом было скопировать все содержимое listener.ora из моя текущая установка Oracle Express в этот другой каталог, который слушатель, кажется, проверяет (я думаю, что я изменил его через реестр или что-то в этом роде, и он имеет приоритет над ORACLE_HOME (?))

Я знаю, что это старый вопрос, но все еще без ответа. Это заняло у меня целый день исследований, но я нашел самое простое решение, по крайней мере, в моем случае (Oracle 11.2 в Windows 2008 R2) и хотел поделиться им.

Ошибка, если смотреть непосредственно, указывает, что слушатель не распознает имя службы. Но где он хранит названия сервисов? В %ORACLE_HOME%\NETWORK\ADMIN\listener.ora

«SID_LIST» - это просто список SID и имен сервисов в паре в формате, который вы можете скопировать или найти.

Я добавил проблему Service Name, затем в панели управления Windows «Службы» произвел «Перезапуск» в службе прослушивания Oracle. Теперь все хорошо.

Например, ваш файл listener.ora может изначально выглядеть так:

. И чтобы он распознал имя службы orcl , вы можете изменить его на:

vapcguy, вы должны быть на сервере базы данных. Похоже, вы на клиенте Следуя инструкциям Sepideh, касающимся сетевого менеджера, я заметил, что мой файл listeners.ora был обновлен и теперь содержит новую запись SID_LIST. Я отредактировал этот ответ, чтобы включить пример синтаксиса «до и после» для читателей, которые по какой-либо причине не могут использовать Net Manager.

У меня была эта проблема на Windows Server 2008 R2 и Oracle 11g

перейдите в Net Manager> Слушатель> выберите службы баз данных из поля со списком> «Глобальное имя базы данных» должно совпадать с «SID», а «Oracle Home Directory» должен быть правильным.

Если у вас нет записей для служб баз данных, создайте их и задайте правильную глобальную базу данных sid и oracle home.

Мой дескриптор в tnsnames.ora :

Итак, приступаю к регистрации сервиса в listener.ora ручном режиме:

Наконец, перезапустите слушатель по команде:

Запуск OracleServiceXXX из services.msc работал для меня в Windows.

В Windows, если вы используете Oracle Release 12.x, убедитесь, что служба OracleServiceORCL запущена. Если эта служба не запущена, то вы также получите тот же код ошибки.

Это действительно должен быть комментарий к ответу Брэда Риппе , но, увы, недостаточно реп. Этот ответ дал мне 90% пути туда. В моем случае установка и настройка баз данных помещают записи в файл tnsnames.ora для баз данных, которые я запускал. Во-первых, я смог подключиться к базе данных, установив переменные среды (Windows):

а затем подключение с помощью

Далее запустим команду из ответа Брэда Риппе:

показал, что имена не совпадают точно. Записи, созданные с помощью Oracle Database Configuration Assistant, где изначально:

Я перезапустил службу прослушивателя TNS (я часто использую lsnrctl stop и lsnrctl start из командного окна администратора [или Windows Powershell] вместо панели управления службами, но оба работают.) После этого я смог подключиться.

У меня такая же проблема. Для меня просто пишу

сделал трюк, делая так, он подключается к имени службы по умолчанию, я думаю.

У нас была похожая проблема с нашей строкой соединения, вызывающая эту ошибку. Мы подключали с помощью тонкого драйвера Oracle, JDBC со строкой подключения: jdbc:oracle:thin:@//localhost:1521/orcl . Скорректированная строка подключения , чтобы устранить эту ошибку было: jdbc:oracle:thin:@localhost:1521 . это зависит от того, сработает ли это - я думаю, что этот способ подключения, судя по тому, что говорили другие, полностью обходит слушателя, используя имя хоста компьютера вместо SID - этот способ подключения вызывает проблемы у сторонних клиентов, - я думаю, это также работает, только когда EZCONNECT указан в sqlnet.ora: NAMES.DIRECTORY_PATH = (TNSNAMES, EZCONNECT)

То, что работало для меня, было действительно простым, мне просто нужно было вручную запустить службу в «Службах Windows» (services.msc в cmd trompt). мое сервисное имя: OracleServiceXXXXX.

В моем случае, хотя Тип запуска установлен на Автоматический, он не запускается при загрузке компьютера. После запуска вручную службы «OracleServiceXE» она работает с Oracle Database 11g Express для подключения к БД и веб-странице APEX (Oracle Application Express).

Проверьте, что база данных работает. Войдите на сервер, задайте для переменной среды ORACLE_SID SID базы данных и запустите SQL * Plus в качестве локального соединения.

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

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

Вы можете скачать инструмент с сайта оракула Sql Developer

Вот скриншот того, как следить за вашими сессиями. (если вы видите много сессий, накапливающихся для пользователя вашего приложения во время, когда вы видите ошибку ORA-12514, то это хороший признак того, что у вас может быть проблема с пулом соединений).

введите описание изображения здесь

Я решил эту проблему в своей среде linux, обновив IP-адрес моей машины в файле / etc / hosts.

Вы можете проверить свой сетевой IP (inet end.) С помощью:

Посмотрите, совпадает ли ваш IP с файлом / etc / hosts:

Отредактируйте файл / etc / hosts, если он подключен:

это старый, но нет смысла добавлять ваш IP в / etc / hosts. ОП отсутствует SERVICE_NAME, другие вещи совершенно не связаны

Для тех, кто может использовать Oracle на виртуальной машине (например, я), я видел эту проблему, потому что моей виртуальной машине не хватало памяти, что, по-видимому, препятствовало правильному запуску / запуску OracleDB. Увеличение моей виртуальной памяти и перезапуск исправили проблему.

Для меня ошибка 12514 была решена после указания правильного SERVICE_NAME. Вы обнаружите, что на сервере в файле, tnsnames.ora который поставляется с 3 предопределенными именами служб (одно из них «XE»).

Если SERVICE_NAME=XE вы ошиблись, вы получите ошибку 12514. Это SERVICE_NAME необязательно. Вы также можете оставить это в стороне.

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

Я также столкнулся с той же самой проблемой и потратил 3 дня, чтобы выкопать это.

Это происходит из-за неправильного входа в службу TNS.

Сначала проверьте, можете ли вы подключиться к резервной базе данных из первичной базы данных, используя sql> sqlplus sys@orastand as sysdba ( orastand резервная база данных).

Если вы не можете подключиться, то это проблема с сервисом. Исправьте запись имени службы в файле TNS на первичном конце.

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

Используйте Oracle Net Manager для настройки служб и мониторинга

Чтобы переместить тестовую базу данных в локальную среду, Baidu потратил все силы и два дня. После n нескольких сбоев он смог умело настраивать службы и контролировать. В этой статье в основном настраивается локальная база данных для обслуживания Мониторинг: если вам нужно настроить удаленный мониторинг базы данных, вам нужно только настроить «прослушиватель» вместо настройки именования служб и настроить только «местоположение мониторинга».

Мой процесс установки и настройки: установить oracle → настроить службу → настроить мониторинг

На самом деле, насколько мне известно, существует три способа настроить сервис для мониторинга.

1. Настроить через oracle net manager (самый простой)

2. Настроить, напрямую изменив файл прослушивания (подвержен ошибкам)

3. Настроить с помощью команд (высокая сложность)

Итак, сегодня самый простой способ настройки

Установите oracle (шаги напрямую опущены, вечером много обучающих программ). Ниже представлена ​​завершенная страница сетевого менеджера oracle.


Добавить монитор

1. Выберите «слушателя», щелкните значок «плюс» слева «+», появится всплывающее окно для ввода имени, просто по умолчанию, нажмите «ОК»


3. В раскрывающемся списке в верхней правой части страницы выберите «Служба базы данных», нажмите «Добавить базу данных», глобальное имя базы данных и sid могут быть заполнены как sid, если вы не знаете свой sid, вы можете запросить с помощью следующих операций

Откройте cmd, введите sqlplus, имя пользователя: sys password: manager как sysdba, введите имя в форме V $ database;

основной каталог oracle: мой - F: \ app \ duanzhe \ product \ 11.2.0 \ dbhome_2 (вы можете найти файл приложения в корневом каталоге в соответствии с установочным файлом)

4. В раскрывающемся списке вверху страницы справа выберите «Другие службы» и нажмите «Добавить службу». Если необходимо настроить мониторинг локальной базы данных, его необходимо заполнить. Если настроен удаленный мониторинг базы данных, в этом нет необходимости. Имя программы: введите случайно, sid: под соответствующим именем службы. Sid в oraclr_connection_data, домашний каталог Oracle: каталог установки, мой - F: \ app \ duanzhe \ product \ 11.2.0 \ dbhome_2, эта конфигурация мониторинга завершена, без каких-либо операций, продолжайте следующие операции добавления службы.


Добавить услугу

1. Выберите «имя службы», щелкните значок плюса «+» слева и введите имя сетевой службы (только в качестве идентификационного имени, вы можете указать его по желанию, например: напишите ceshi для локальной библиотеки и напишите адрес непосредственно для удаленной библиотеки: xx.xx .xx.xx)


2. Далее выберите tcp / IP (интернет-протокол).


3. Нажмите Далее, если имя службы локальное, вы можете указать localhost, если вам нужно подключиться к базе данных удаленно, введите адрес: xx.xx.xx.xx


4. После нажатия кнопки «Далее» появится тестовая страница, нажмите «Готово», а затем нажмите в верхнем левом углу «Файл-Сохранить конфигурацию сети».

5. Если вам нужно проверить правильность конфигурации, выберите вновь добавленное имя службы в разделе «Имя службы» и нажмите кнопку «Проверить службу» слева, как показано на рисунке.


Нажмите «изменить логин», введите имя пользователя, пароль, нажмите «Тест», если проверка подключения прошла успешно, это означает, что проверка подключения прошла успешно, как показано на рисунке.

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