angle-left

ORA-12514 при подключении к экземпляру Oracle

Причин по которым может возникнуть ошибка 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%.
 
Изменение системной переменной решило описанную проблему.