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