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

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

Вот несколько способов решения этой проблемы:

  1. Проверка имени службы: дважды проверьте имя службы, указанное в дескрипторе соединения. Убедитесь, что оно соответствует имени службы, настроенному в прослушивателе Oracle. Вы можете использовать следующий пример кода:
sqlplus username/password@(
  DESCRIPTION=(
    ADDRESS_LIST=(
      ADDRESS=(PROTOCOL=TCP)(HOST=hostname)(PORT=port)
    )
    CONNECT_DATA=(SERVICE_NAME=servicename)
  )
)

Замените «имя пользователя», «пароль», «имя хоста», «порт» и «имя службы» соответствующими значениями.

  1. Перезапустите прослушиватель: перезапустите прослушиватель Oracle, чтобы убедиться, что он работает правильно. Вы можете использовать следующую команду:
lsnrctl stop
lsnrctl start
  1. Проверьте конфигурацию прослушивателя: проверьте файл конфигурации прослушивателя (listener.ora), чтобы убедиться, что служба определена правильно. Вот пример файла Listener.ora:
LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = TCP)(HOST = hostname)(PORT = port))
      (CONNECT_DATA =
        (SERVER = DEDICATED)
        (SERVICE_NAME = servicename)
      )
    )
  )
  1. Проверьте строку подключения. Убедитесь, что используемая вами строка подключения правильна и соответствует имени службы в конфигурации прослушивателя. Например:
jdbc:oracle:thin:@//hostname:port/servicename
  1. Проверка состояния базы данных: проверьте, работает ли база данных Oracle, связанная со службой. Для подключения к базе данных можно использовать следующую команду SQL*Plus:
sqlplus username/password@servicename
  1. Проверьте сетевое подключение: убедитесь, что сетевое соединение между клиентом и сервером базы данных Oracle работает правильно. Убедитесь, что имя хоста и порт доступны с клиентского компьютера.

  2. Конфигурация брандмауэра: проверьте, есть ли какие-либо брандмауэры или настройки безопасности, которые могут блокировать соединение с базой данных Oracle. Убедитесь, что необходимые порты открыты.

  3. Проверьте переменную среды TNS_ADMIN: убедитесь, что переменная среды TNS_ADMIN установлена ​​правильно и указывает на каталог, в котором находится файл Listener.ora.