Причин по которым может возникнуть ошибка
ORA-12514 много, я расскажу об одной из возможных с предисторией.
У нашего заказчика развернут Oracle 11.2 на Windows Server.
При предоставлении заказчиком учётных данных для подключения нас насторожил обязательный формат логина SQLplus с явным указанием идентификатора соединения (connect_identifier)
sqlplus sys/pass@connect_identifier as sysdba
В процессе проведения работ нам потребовалось запустить базу данных в NOMOUNT через shutdown immediate,
C:\Windows\system32>sqlplus sys/pass@connect_identifier as sysdba
SQL*Plus: Release 11.2.0.1.0 Production on ***
Copyright (c) 1982, 2010, Oracle. All rights reserved.
Присоединен к:
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
SQL> shutdown immediate
База данных закрыта.
База данных размонтирована.
Экземпляр ORACLE завершен.
SQL> startup nomount
ORA-12514: TNS:прослушиватель в данный момент не имеет данных о службе, запрашиваемой в дескрипторе соединения
Коннекция без идентификатора соединения не удавалась(а именно она позволила бы поднять базу).
Решение
Проблема заключалась в некорректном значении системной переменной ORACLE_SID, значение которой не соответствовало названию экземпляра. В корректно настроенной системе переменная значение ORACLE_SID должно соответсвовать названию экземпляра отображенному в названии сервиса OracleService%sid_name%.
Изменение системной переменной решило описанную проблему.