Разное

Listener currently does not know of service requested in connect descriptor: listener does not currently know of service requested in connect descriptor? — Хабр Q&A

Содержание

listener does not currently know of service requested in connect descriptor? — Хабр Q&A

Здравствуйте.

На 3-х виртуальных машинах в локальной сети
192.168.0.21
192.168.0.22
192.168.0.23
проинсталлированы 3 экземпляра Oracle

ниже
1.

SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
      (SID_NAME = CLRExtProc)
      (ORACLE_HOME = d:\databases\Oracle\product\12.2.0\dbhome_1)
      (PROGRAM = extproc)
      (ENVS = "EXTPROC_DLLS=ONLY:d:\databases\Oracle\product\12.2.0\dbhome_1\bin\oraclr12.dll")
    )
  )

LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
    )
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.21)(PORT = 1521))
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
    )
	)

2.

SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
      (SID_NAME = CLRExtProc)
      (ORACLE_HOME = D:\Databases\Oracle\product\12. 2.0\dbhome_1)
      (PROGRAM = extproc)
      (ENVS = "EXTPROC_DLLS=ONLY:D:\Databases\Oracle\product\12.2.0\dbhome_1\bin\oraclr12.dll")
    )
  )

LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 2001))
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC2001))
    )
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.22)(PORT = 2001))
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC2001))
    )
	)

3.

SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
      (SID_NAME = PLSExtProc)
      (ORACLE_HOME = D:\DataBases\Oracle\product\12.2.0\dbhome_1)
      (PROGRAM = extproc)
    )
    (SID_DESC = 
      (GLOBAL_DBNAME = DBORACLE.SERVER02)
      (ORACLE_HOME = D:\DataBases\Oracle\product\12.2.0\dbhome_1)
      (SID_NAME = DBORACLE)
    )
  )

LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 3001))
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC))
    )
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 192. 168.0.23)(PORT = 3001))
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC))
    )	
  )


DBORACLE_NETWORK =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.23)(PORT = 3001))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = dboracle)
    )
  )

1 и 2 работает инстансы,
3-й при подключении клиента возвращает ошибку

An error was encountered performing the requested operation:
Listener refused the connection with the following error:
ORA-12514, TNS:listener does not currently know of service requested in connect descriptor
Vendor code 12514

Как решить проблему с 3-м эксземпляром?

Listener does not currently know of service requested in connect descriptor – VeelTech.ru

Ошибка TNS-12514 может возникнуть во множестве случаев, как на windows, так и на unix/linux платформах. Но чаще всего неприятности с подключением происходят именно на windows платформе.

Первое, что необходимо проверить, настройки самого прослушивателя listener. ora:

LISTENER =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
    (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
  )

ADR_BASE_LISTENER = C:\app\oracle\product\12.1.0\dbhome_1

 

Далее следует убедиться, что экземпляр БД запущен.

> export ORACLE_SID=my_sid
> sqlplus / as sysdba

Connected to:
Oracle Database 12c Enterprise Edition Release 12.1.0.2.0 - 64bit Production
With the Partitioning, OLAP, Advanced Analytics and Real Application Testing options

SQL>

Если вместо версии БД мы получаем сообщение:

Connected to an idle instance.

SQL>

то запускаем БД:

SQL>startup

Если подключиться к БД по-прежнему не удается, то проверяем процесс прослушивателя.

LSNRCTL for 64-bit Windows: Version 12.1.0.2.0 - Production on 14-DEC-2015 16:50:50

Copyright (c) 1991, 2014, Oracle.  All rights reserved.

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=localhost)(PORT=1521)))
STATUS of the LISTENER
------------------------
Alias                     LISTENER
Version                   TNSLSNR for 64-bit Windows: Version 12.1.0.2.0 - Production
Start Date                14-DEC-2015 16:37:40
Uptime                    0 days 0 hr. 13 min. 10 sec
Trace Level               off
Security                  ON: Local OS Authentication
SNMP                      OFF
Listener Parameter File   C:\app\oracle\product\12.1.0\dbhome_1\listener.ora
Listener Log File         C:\app\oracle\product\12.1.0\dbhome_1\log\diag\tnslsnr\phoenix\listener\alert\log.xml
Listening Endpoints Summary...
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=localhost)(PORT=1521)))
  (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521)))
The listener supports no services
The command completed successfully

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

SQL> show parameter local_listener;

NAME                                 TYPE        VALUE
------------------------------------ ----------- -------------------------------
local_listener                       string

SQL> alter system set LOCAL_LISTENER='(ADDRESS = (PROTOCOL=TCP)(HOST=localhost)(PORT=1521))' scope=both;

System altered.

SQL> show parameter local_listener;

NAME                                 TYPE        VALUE
------------------------------------ ----------- -------------------------------
local_listener                       string      (ADDRESS = (PROTOCOL=TCP)(HOST=
                                                 =localhost)(PORT=1521))
SQL>

После установки параметра БД автоматически регистрируется для прослушивателя.

Слушатель Oracle 11g не работает с ошибками ORA-12514 и ORA-12505

Я запускаю экземпляр Oracle 11g локально на моей машине для разработки и могу подключиться к локальному экземпляру напрямую через SqlPlus:

c:\>sqlplus ace

SQL*Plus: Release 11.2.0.2.0 Production on Mon Mar 11 11:50:20 2013

Copyright (c) 1982, 2010, Oracle.  All rights reserved.

Enter password:

Connected to:
Oracle Database 11g Express Edition Release 11.2.0.2.0 - Beta

SQL> select count(*) from my_table ;

  COUNT(*)
----------
      5297

Но я не могу подключиться к нему через слушателя:

c:\>sqlplus -L "user/pw@(DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = XE)))"

SQL*Plus: Release 11.2.0.2.0 Production on Mon Mar 11 11:52:40 2013

Copyright (c) 1982, 2010, Oracle.   All rights reserved.

ERROR:
ORA-12514: TNS:listener does not currently know of service requested in connect
descriptor


SP2-0751: Unable to connect to Oracle.  Exiting SQL*Plus

Точно так же, если я подключаюсь через SqlDeveloper, я получаю ошибку (хотя и ORA-12505, TNS:listener does not currently know of SID given in connect descriptor).

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

Я перезапустил службу и слушателя несколько раз, журнал слушателя не дает никаких подсказок.

Слушатель выглядит нормально:

c:\>lsnrctl status

LSNRCTL for 32-bit Windows: Version 11.2.0.2.0 - Beta on 11-MAR-2013 11:55:33

Copyright (c) 1991, 2010, Oracle.  All rights reserved.

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1)))
STATUS of the LISTENER
------------------------
Alias                     LISTENER
Version                   TNSLSNR for 32-bit Windows: Version 11. 2.0.2.0 - Beta
Start Date                11-MAR-2013 11:17:30
Uptime                    0 days 0 hr. 38 min. 3 sec
Trace Level               off
Security                  ON: Local OS Authentication
SNMP                      OFF
Default Service           XE
Listener Parameter File   C:\oraclexe\app\oracle\product\11.2.0\server\network\admin\listener.ora
Listener Log File         C:\oraclexe\app\oracle\diag\tnslsnr\FBC305BB46560\listener\alert\log.xml
Listening Endpoints Summary...
  (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(PIPENAME=\\.\pipe\EXTPROC1ipc)))
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=machine.domain.com)(PORT=1521)))
Services Summary...
Service "CLRExtProc" has 1 instance(s).
  Instance "CLRExtProc", status UNKNOWN, has 1 handler(s) for this service...
Service "PLSExtProc" has 1 instance(s).
  Instance "PLSExtProc", status UNKNOWN, has 1 handler(s) for this service...
The command completed successfully

Порт 1521 кажется нормальным:

c:\>netstat -an -O | find /i "1521"
  TCP    0. 0.0.0:1521           0.0.0.0:0              LISTENING       4368
  TCP    169.243.90.109:55307   159.185.207.100:1521   ESTABLISHED     12416
  TCP    [::]:1521              [::]:0                 LISTENING       4368

(PID 4368 — это процесс TNSLSNR.exe.)

Кроме того, я могу tnspingк службе XE:

c:\>tnsping xe

TNS Ping Utility for 32-bit Windows: Version 11.2.0.2.0 - Beta on 11-MAR-2013 12:27:47

Copyright (c) 1997, 2010, Oracle.  All rights reserved.

Used parameter files:
C:\oraclexe\app\oracle\product\11.2.0\server\network\admin\sqlnet.ora


Used TNSNAMES adapter to resolve the alias
Attempting to contact (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = machine.domain.com)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = XE)))
OK (210 msec)

listenerr.oraФайл:

SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
      (SID_NAME = PLSExtProc)
      (ORACLE_HOME = C:\oraclexe\app\oracle\product\11. 2.0\server)
      (PROGRAM = extproc)
    )
    (SID_DESC =
      (SID_NAME = CLRExtProc)
      (ORACLE_HOME = C:\oraclexe\app\oracle\product\11.2.0\server)
      (PROGRAM = extproc)
    )
  )

LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1))
      (ADDRESS = (PROTOCOL = TCP)(HOST = machine.domain.com)(PORT = 1521))
    )
  )

DEFAULT_SERVICE_LISTENER = (XE)

Кроме того, и я понятия не имею, связано ли это, я не могу получить доступ к вершине https://127.0.0.1:8080/apex(хотя разрешения для этого кажутся нормальными).

Так, где еще я должен искать?

Обновление с запрошенной информацией:

SQL> show parameter service_names

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
service_names                        string      XE
SQL> show parameter local_listener

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
local_listener                       string

Update2 : как правильно указывает @ miracle173 , слушатель не был в порядке. С обновленным параметром ‘local_listener’ теперь отображается дополнительная информация:

Listening Endpoints Summary...
  (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(PIPENAME=\\.\pipe\EXTPROC1ipc)))
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=machine.domain.com)(PORT=1521)))
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=127.0.0.1)(PORT=1521)))
Services Summary...
Service "CLRExtProc" has 1 instance(s).
  Instance "CLRExtProc", status UNKNOWN, has 1 handler(s) for this service...
Service "PLSExtProc" has 1 instance(s).
  Instance "PLSExtProc", status UNKNOWN, has 1 handler(s) for this service...
Service "XEXDB" has 1 instance(s).
  Instance "xe", status READY, has 1 handler(s) for this service...
Service "xe" has 1 instance(s).
  Instance "xe", status READY, has 1 handler(s) for this service...
The command completed successfully

слушатель не смог разрешить SERVICE_NAME

Вопрос:

Вот моя проблема, вызывающая ORA-12514: TNS: listener
не удалось устранить ошибку SERVICE_NAME:

КОД

SQL> немедленное выключение
База данных закрыта.
База данных отключена.
Экземпляр ORACLE выключен.
SQL> при запуске монтировать
Экземпляр ORACLE запущен.
ORA-12514: TNS: слушатель не смог
разрешить SERVICE_NAME, указанную в подключении
дескриптор

Я использую Oracle 10g в Windows 2000.
В чем причина этой ошибки и как ее решить?

Ответ Эдварда Стувера:

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


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

Действие:


Подождите и попробуйте подключиться второй раз.

— Проверить, какие услуги в настоящее время известны
прослушивателя, выполнив:

lsnrctl services <имя прослушивателя>

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

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

— Проверить наличие события в слушателе.лог-файл.

Я избегаю использования соединения слушателя при запуске
или выключение, как показывает практика. Я понимаю что
не всегда можно сделать. Вы физически на
машина? Можете ли вы использовать ssh или telnet и запустить sqlplus на
коробка? Затем подключите так:

КОД

экспорт ORACLE_SID = mydb ### Unix / Linux
sqlplus sys как sysdba
[пароль не требуется — просто нажмите return]
SQL> startup mount
. ..

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

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

При попытке подключиться к удаленному серверу Oracle SQL Server с помощью Oracle SQL Developer я получаю следующее сообщение об ошибке:

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

Несколько замечаний:

  1. У меня это работало практически в этой конфигурации, но коробка взорвалась, так что теперь я не могу точно видеть.Но я помню, что мне не приходилось настраивать Listener.ora в прошлый раз.
  2. Сервер Oracle DB находится в удаленном месте, но для подключения в прошлый раз мне пришлось установить Oracle DB, что я и сделал на этот раз. Но я пытаюсь подключиться не к своей локальной БД, а к удаленной БД.

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

Поиск в Google подразумевает, что моя проблема где-то в Listener.ора. Вот мои файлы Listener.ora и TNSNames.ora.

Listener.ora:

  SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
      (SID_NAME = CLRExtProc)
      (ORACLE_HOME = D: \ приложение \ xoneill \ product \ 12.2.0 \ dbhome_1)
      (ПРОГРАММА = extproc)
      (ENVS = "EXTPROC_DLLS = ТОЛЬКО: D: \ app \ xoneill \ product \ 12.2.0 \ dbhome_1 \ bin \ oraclr12.dll")
    )
    (SID_DESC =
      (SID_NAME = DWh2)
      (ORACLE_HOME = D: \ приложение \ xoneill \ product \ 12.2.0 \ dbhome_1)
      (GLOBAL_DBNAME = DWh2)
    )
  )

СЛУШАТЕЛЬ =
  (DESCRIPTION_LIST =
    (ОПИСАНИЕ =
      (АДРЕС = (ПРОТОКОЛ = TCP) (ХОСТ = локальный хост) (ПОРТ = 1521))
      (АДРЕС = (ПРОТОКОЛ = IPC) (КЛЮЧ = EXTPROC1521))
# (АДРЕС = (ПРОТОКОЛ = TCP) (ХОСТ = 110. 241,84,62) (ПОРТ = 1521))
    )
  )
  

Я попытался установить для хоста IP-адрес удаленного сервера (см. Строку с комментариями выше), но когда я прокомментировал строку localhost и раскомментировал ее, а затем перезапустил службу OracleOraDB12Home1TNSListener, она немедленно запускается и останавливается со следующей ошибкой:

На самом деле, даже простое сохранение файла Listener.ora, кажется, останавливает службу. Но я могу перезапустить нормально, если HOST = localhost , но когда HOST = 110.241.84.62 , это ошибка выше.

TnsNames.ora:

  # tnsnames.ora Файл конфигурации сети: D: \ app \ xoneill \ product \ 12.2.0 \ dbhome_1 \ network \ admin \ tnsnames.ora
# Генерируется средствами конфигурации Oracle.

LISTENER_ORCL =
  (АДРЕС = (ПРОТОКОЛ = TCP) (ХОСТ = локальный хост) (ПОРТ = 1521))


ORACLR_CONNECTION_DATA =
  (ОПИСАНИЕ =
    (ADDRESS_LIST =
      (АДРЕС = (ПРОТОКОЛ = IPC) (КЛЮЧ = EXTPROC1521))
    )
    (CONNECT_DATA =
      (SID = CLRExtProc)
      (ПРЕЗЕНТАЦИЯ = RO)
    )
  )

ORCL =
  (ОПИСАНИЕ =
    (АДРЕС = (ПРОТОКОЛ = TCP) (ХОСТ = локальный хост) (ПОРТ = 1521))
    (CONNECT_DATA =
      (СЕРВЕР = ВЫДЕЛЕННЫЙ)
      (SERVICE_NAME = orcl)
    )
  )

DWh2 =
  (ОПИСАНИЕ =
    (АДРЕС = (ПРОТОКОЛ = TCP) (HOST = 110. 241,84,62) (ПОРТ = 1521))
    (CONNECT_DATA =
      (СЕРВЕР = ВЫДЕЛЕННЫЙ)
      (SERVICE_NAME = DWh2)
    )
  )
  

Из моего поиска в Google кажется, что некоторые команды LSNRCTL были полезны:

  LSNRCTL> услуги
Подключение к (ОПИСАНИЕ = (АДРЕС = (ПРОТОКОЛ = TCP) (HOST = localhost) (PORT = 1521)))
TNS-12541: TNS: нет слушателя
 TNS-12560: TNS: ошибка адаптера протокола
  TNS-00511: Нет слушателя
   64-битная ошибка Windows: 61: неизвестная ошибка
Подключение к (ОПИСАНИЕ = (АДРЕС = (ПРОТОКОЛ = IPC) (КЛЮЧ = EXTPROC1521)))
TNS-12541: TNS: нет слушателя
 TNS-12560: TNS: ошибка адаптера протокола
  TNS-00511: Нет слушателя
   64-битная ошибка Windows: 2: нет такого файла или каталога

LSNRCTL> услуги dwh2
Подключение к (ОПИСАНИЕ = (АДРЕС = (ПРОТОКОЛ = TCP) (HOST = 110.241.84.62) (ПОРТ = 1521)) (CONNECT_DATA = (СЕРВЕР = ВЫДЕЛЕННЫЙ) (ИМЯ СЕРВИСА = DWh2)))
TNS-01189: прослушиватель не смог аутентифицировать пользователя.
  

При попытке подключиться к SQLPlus выдает то же сообщение:

  SQL * Plus: выпуск 12. 2.0.1.0, производство в четверг, 10 мая, 22:48:00 2018

Авторское право (c) 1982, 2016, Oracle. Все права защищены.

Введите имя пользователя: OBREAD @ "110.241.84.62/DWh2:dedicated/OBREAD"
Введите пароль:
ОШИБКА:
ORA-12514: TNS: слушатель в настоящее время не знает службы, запрошенной при подключении
дескриптор
  

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

признателен за любую помощь.

Джоно

ORA-12514: TNS: слушатель в настоящее время не знает об услуге, запрошенной в дескрипторе подключения — Форум — Монитор серверов и приложений (SAM)

Привет, народ.

У меня возникли проблемы с попыткой аутентификации и мониторинга некоторых экземпляров Oracle.

Мы запускаем довольно большую среду Oracle, где серверы (серверы Windows 2008/2012) находятся в кластере.

Пример

Server-A01 и sever-A02, для тех, кто не уверен. Я пытаюсь контролировать службы в ящиках Oracle и получаю следующую ошибку ниже.

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

Обратите внимание на неправильное имя службы или неправильное имя SID в tnsnames.ora может легко привести к ORA-12514, однако тот факт, что вы получили ORA-12514, является подтверждением того, что по крайней мере клиент может подключиться к слушателю, потому что в противном случае вы получите ORA-12541. Проблема должна быть либо в имени службы, либо в соответствующем процессе базы данных.

Случай ORA-12514 может представлять особую ситуацию, когда вы предоставили SERVICE_NAME, включая действительный домен, однако экземпляр не был настроен с необходимыми параметрами инициализации (SERVICE_NAMES и / или DB_DOMAIN), что привело к ORA-12514. Однако обратите внимание, что если вы попытаетесь подключиться с использованием SID или укажете SERVICE_NAME без доменной части, соединение будет успешным.

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

Более подробные объяснения вы можете найти здесь: http://oraclequirks.blogspot.com/2008/03/ora-12514-tnslistener-does-not.html.

Также вы можете попробовать использовать другую опцию конфигурации монитора «Тип точки назначения», например, выбрать «SID» вместо «SERVICE_NAME».

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

Я меняю его на SID и получаю следующую ошибку.

ORA-12505: TNS: прослушиватель в настоящее время не знает SID, указанного в дескрипторе подключения

Для объяснения этого сообщения об ошибке см. Статью о ORA-12514.

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

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

Более подробные объяснения вы можете найти здесь: http://oraclequirks.blogspot.com/2008/05/ora-12505tnslistener-does-not-currently.html.

Также вы можете попробовать использовать другую опцию конфигурации монитора «Тип точки назначения», например, выбрать «SID» вместо «SERVICE_NAME».

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

Слушатель

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

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

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

Подробности ошибки следующие.

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

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

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

сервис (обычно сервис базы данных), который либо еще не зарегистрирован динамически

со слушателем или не был статически настроен для слушателя.

Это может быть временное состояние, например, после запуска слушателя,

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


 
 Действие: - Подождите и попробуйте подключиться второй раз.

- Проверьте, какие службы в настоящее время известны слушателю, выполнив: lsnrctl services <имя слушателя>

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

- Проверьте наличие события в файле listener.log. 

ORA-12514: TNS: прослушиватель в настоящее время не знает службы

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

 $ lsnrctl status listener

 

Прослушиватель должен быть всегда запущен.

Проверьте службы слушателя, которые прослушивают службы.

 lsnrctl services <имя слушателя> 

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

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

 SQL> alter system set local_listener = '(DESCRIPTION = (ADDRESS = (PROTOCOL = tcp) (HOST = 192.168.63.34) (PORT = 1521)))' scope = both;

SQL> изменить системный регистр;




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

Oracle Database Tutorials for Beginners (Junior Oracle DBA)

959 просмотров в прошлом месяце, 2 просмотров сегодня

Как исправить «ORA-12505» | Chartio Учебник

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

SID против SERVICE_NAMES

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

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

Часто SID является префиксным словом или DB_UNIQUE_NAME , которое предшествует DB_DOMAIN . Например, SID нашей базы данных книжного магазина , как видно из полного имени глобальной базы данных книжного магазина .Компания.com .

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 может иметь следующий формат:

  myDatabaseNetService =
  (ОПИСАНИЕ =
    (ADDRESS = (PROTOCOL = tcp) (HOST = localhost) (PORT = 1521) (QUEUESIZE = 100))
    (CONNECT_DATA =
      (SERVICE_NAME = книжный магазин.company.com)
    )
  )
  

Это определит NET_SERVICE_NAME с использованием SERVICE_NAME , о котором мы говорили ранее ( bookstore.company.com ), и подключится к localhost через порт 1521 .

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

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

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

При подключении через NET_SERVICE_NAME , как указано в ваших tnsnames .ora , необходимо использовать имя пользователя , пароль , а затем добавить NET_SERVICE_NAME с символом @ , например:

  имя пользователя / пароль @ NET_SERVICE_NAME
  

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

  john / Hunter2 @ myDatabaseNetService
  

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

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

  имя пользователя / пароль @ хост: порт / SERVICE_NAME
  

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

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

  имя пользователя / пароль @ хост: порт: SID
  

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

Проблема:

В приложениях Oracle 12. 2, ADOP генерирует ошибку на этапе подготовки при попытке применить исправление с опцией phase = prepare

******* FATAL ERROR *******
PROGRAM: (apps / fs1 / EBSapps / appl / ad /12.0.0/bin/adzdoptl.pl)
ВРЕМЯ: Сб, 6 апреля 20:02:22 2019
ФУНКЦИЯ: ADOP :: Phase :: executeSQL [Уровень 1]
ОШИБКАG: Недействительные учетные данные

Файл журнала принятия исправлений имеет ниже ошибка:

Ошибка AutoPatch:
Следующая ошибка ORACLE:

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

Причина:

Для этого может быть несколько причин, но следующая причина :

1) Сервис ebs_patch не зарегистрирован в слушателе из-за набора параметров local_listener.

local_listener не определен в init.ora.

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

Состояние прослушивателя показывает

Сводка служб …
Служба «» имеет 1 экземпляр (а).
Экземпляр «», статус UNKNOWN, имеет 1 обработчик (-ы) для этой службы …
Команда успешно завершена

В файле init.ora service_names = существует, но нет доступного local_listener и прослушиватель не использует порт по умолчанию. Несмотря на то, что следующая команда не выдает ошибок, служба не регистрируется.
изменить системный набор SERVICE_NAMES = ‘‘;

Решение:

Для реализации решения выполните следующие шаги:

1. Добавьте следующую строку в init.ora:

local_listener = _LOCAL

В этом SID указано имя экземпляра базы данных.

e.g

local_listener = _LOCAL

2. Перезапустите базу данных.

3. Проверьте проблему еще раз.

4. При необходимости перенесите решение в другие среды.

Ссылка:

Ошибка ADOP на этапе подготовки из-за недопустимой ошибки учетных данных ORA-12514 (идентификатор документа 1546945. 1)

ORA-12505: TNS: слушатель не знает SID в дескрипторе подключения

ORA-12505: TNS: Слушатель в настоящее время не знает SID, указанного в подсказках дескриптора подключения

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

  1. Дескриптор соединения, полученный прослушиваемым, указывает SID для экземпляра, который не был динамически зарегистрирован в прослушивателе.
  2. Дескриптор соединения, полученный прослушиваемым, указывает SID для экземпляра, который не был статически настроен для прослушивателя.

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

Существует несколько методов исправления ошибки ORA-12505. Первое, что вам нужно сделать для решения этой проблемы, — это подождать несколько секунд, а затем снова попытаться подключиться к базе данных. Если эта попытка не удалась, попробуйте проверить, какие экземпляры известны слушателю. Для этого выполните: lsnrctl services <имя слушателя>.

Вы также можете проверить статус слушателя. Если вы видите сообщение «listener support no service», это означает, что ваш слушатель не зарегистрирован в базе данных.Если появляется это сообщение, войдите в sysdba, набрав «/ as sysdba». Затем измените системный регистр, остановите и запустите слушатель. Ввод «lsnrctl status» должен позволить слушателю запуститься. Повторите тест, чтобы убедиться, что ваш слушатель теперь успешно подключен к базе данных.

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

В среде Oracle 12c Container Database вы можете увидеть эту ошибку, потому что вы не смогли указать имя службы для подключения к базе данных. Чтобы решить эту проблему, используйте параметр listener.ora USE_SID_AS_SERVICE_listener_name. Этот параметр сообщит слушателю использовать SID в дескрипторе подключения в качестве имени службы и позволит вам подключить клиента к этой конкретной базе данных. Значение по умолчанию для параметра установлено на «off» и должно быть явно установлено на «on» для использования. Чтобы установить его в режим «включено», следуйте синтаксису: следуйте синтаксису: USE_SID_AS_SERVICE_LISTENER = on.

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

.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *