Вопрос Borderline ServerFault, но я решил сначала попробовать здесь, так как в прошлом мне везло с вопросами Oracle.
Я пытаюсь подключиться к базе данных оракула из PHP и получаю следующую ошибку.
ORA-12505: TNS:listener does not currently know of SID given in connect descriptor
Это ошибка, о которой сообщает PHP, и ошибка, которая отображается в Oracle listener.log.
Моя непосредственная проблема - исправить эту ошибку. Более крупный вопрос, на который я хотел бы получить ответ, заключается в том, как работает модель соединения Oracle?
Это среда разработки, которая работает на моем локальном компьютере с Windows и работает до сих пор. К сожалению, среда была передана мне (не я ее настраивал), и люди, которые настраивали ее, не могут помочь мне в ее отладке.
Если бы я получал аналогичную ошибку с MySQL или PostgreSQL (две системы, с которыми я более знаком), я бы проверил, чтобы убедиться, что процесс базы данных запущен, а затем попытался подключиться к базе данных вручную, используя имя пользователя/пароль/ строка подключения. К сожалению, я не знаком с инструментами Oracle для Windows (кроме SQL Developer) и не знаю, что такое TNS:listener или SID в контексте Oracle (у меня есть смутные идеи, но смутные идеи редко помогают, когда вы отлаживаете что-то вроде этого)
Любые общие советы будут оценены.
Обновления по комментариям:
В моем файле tnsnames.ora есть несколько целых, соответствующая запись
OBS2 =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = steel-ae39650)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = OBS2)
)
)
Это не отражается в списке экземпляров, когда я запускаю
LSNRCTL> services
Поэтому я думаю, что мой следующий вопрос: как мне попытаться вручную запустить экземпляр OBS2?