Центр Диагностики & База Системных Ошибок

Решения для Windows Server, Active Directory, 1С, СУБД, Linux, Cisco, MikroTik и IP-телефонии.

⚠️ Важная информация Все материалы, инструкции, команды и скрипты предоставлены исключительно в ознакомительных целях. Их применение может повлиять на работу операционной системы, баз данных и сетевого оборудования. Перед выполнением действий обязательно создайте резервную копию. При отсутствии необходимой квалификации обратитесь к ИТ-специалистам.

Ошибка ORA-12514: TNS:listener does not currently know of service requested

Обновлено: 26.08.2026  ·  Официальная база знаний
  • Подключение к СУБД завершается ошибкой ORA-12514: TNS:listener does not currently know of service requested in connect descriptor.
  • В выводе lsnrctl status отсутствует запрашиваемый Service Name или PDB.
  • Ошибка часто возникает сразу после перезапуска базы данных до момента завершения динамической регистрации сервисов.

1. Проверка списка сервисов, зарегистрированных в Listener

lsnrctl status
lsnrctl services

2. Принудительная динамическая регистрация из SQL*Plus

sqlplus / as sysdba
ALTER SYSTEM REGISTER;

3. Проверка статуса Pluggable Database (PDB)

Если используется архитектура Multitenant (CDB/PDB), убедитесь, что PDB открыта в режиме READ WRITE:

SELECT name, open_mode FROM v$pdbs; 
-- Если PDB в статусе MOUNTED:
ALTER PLUGGABLE DATABASE orclpdb OPEN;

4. Настройка статической регистрации в listener.ora

Для гарантированной доступности сервиса даже при закрытой базе настройте listener.ora:

SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
      (GLOBAL_DBNAME = orclpdb.corp.local)
      (ORACLE_HOME = /u01/app/oracle/product/19.0.0/dbhome_1)
      (SID_NAME = DB1)
    )
  )
lsnrctl reload
Практический опыт инженера: Всегда прописывайте хотя бы один статический SID_DESC в listener.ora для административного инстанса, чтобы иметь возможность подключиться к базе через сеть при ее нахождении в состоянии MOUNT/NOMOUNT.

Частые вопросы (FAQ)

Почему после ребута сервера БД ошибка ORA-12514 держится 1-2 минуты, а потом исчезает?

Фоновый процесс регистрации (LREG в 12c-19c или PMON в 11g) отправляет данные о сервисах в Listener с периодичностью раз в 60 секунд. Команда ALTER SYSTEM REGISTER ускоряет этот процесс.

В чем разница между SID и SERVICE_NAME?

SID — уникальный идентификатор инстанса на сервере. SERVICE_NAME — логическое имя сервиса (или PDB), к которому подключаются клиенты. Современные клиенты должны использовать SERVICE_NAME.

Как сделать, чтобы PDB автоматически открывалась при старте CDB?

Выполните команду сохранения состояния: ALTER PLUGGABLE DATABASE ALL SAVE STATE;

Что означает статус 'BLOCKED' или 'UNKNOWN' в lsnrctl status?

UNKNOWN означает статическую регистрацию из listener.ora. BLOCKED означает, что инстанс находится в режиме монтирования или восстановления и не принимает пользовательские подключения.