Oracle TNS: сетевое имя службы указано неверно - PullRequest
15 голосов
/ 06 августа 2009

Помощь!Я новичок в Oracle, который пытается получить доступ к базе данных на старом сервере, который мы унаследовали для клиента.

Уверен, у меня запущена и работает база данных oracle и слушатель, но при попытке доступа к sqlplusили команды exp, я получаю следующую ошибку:

ORA-12162: TNS: неверно указано сетевое имя службы

Я отредактировал файл tnsnames.ora, чтобы изменить хост на127.0.0.1, а не внешний URL-адрес, и я могу успешно установить соединение, но дальнейшее продвижение не идет.

Буду признателен за любой совет или помощь.

Ответы [ 6 ]

15 голосов
/ 06 августа 2009

Попробуйте установить SID Oracle

set ORACLE_SID = имя базы данных

2 голосов
/ 07 августа 2009

Дейв Коста задал вам 2 важных вопроса. Вы пытаетесь подключиться через net8 или локально через extproc? Установлен ли прослушиватель на локальном компьютере (127.0.0.1 - устройство обратной связи) для подключения extproc?

Чтобы использовать протокол соединения net8 или tcp, вам нужно указать user / pw @ tns_alias. Для локального подключения через extproc необходимо указать параметр oracle_sid, а затем подключиться через имя / pw.

Я также заметил, что к tnsalias добавлен домен .world, но файл sqlnet.ora не содержит ссылку на NAMES.DEFAULT_DOMAIN как на «мир».

И что такое параметр env для TNS_ADMIN? Убедитесь, что ваши инструменты ищут правильный файл tnsnames.ora. Слишком много раз люди изменяют один tnsnames.ora, а программы / программы смотрят на другой.

2 голосов
/ 06 августа 2009

Вы пытаетесь установить локальное подключение (например, «sqlplus u / p») или сетевое подключение (например, «sqlplus u/p@pnews10s.world»)? Они оба выдают одну и ту же ошибку?

TNSPING по определению использует сетевое соединение. Я вижу некоторые ссылки, которые указывают, что вы можете получить ошибку 12612 при использовании локального соединения. Так что это возможное объяснение, почему вы видите ошибку в SQLPlus, а не в TNSPING. Если это так, попробуйте вместо этого подключиться к сети.

Локальное соединение не работает, вероятно, из-за того, что ORACLE_SID установлен неправильно, как предположил Джон, но его синтаксис может быть неправильным методом для любой используемой вами оболочки. Убедитесь, что вы используете правильный метод для данной оболочки, такой как «export ORACLE_SID = name » или «setenv ORACLE_SID name ».

1 голос
/ 06 августа 2009

Я отредактировал файл tnsnames.ora, чтобы сменить хост на 127.0.0.1. чем внешний URL, и я могу успешно установить соединение, но не намного дальше.

В последний раз, когда со мной случалось (tnsping работает, но sqlplus нет, то же сообщение об ошибке вы получили), проблема заключалась в том, что кто-то скопировал файл tnsnames.ora с компьютера с Windows и оставил неправильные коды перевода строки в .

Если это так, вам нужно сделать несколько dos2unix.

Эти файлы очень чувствительны к "правильному" пробелу и табуляции.

Кто-то должен пожаловаться Oracle на это.

0 голосов
/ 19 июня 2019

В моем случае проблема заключалась в том, что DSN и имя ServiceName были настроены одинаково в файле odbc.ini. Это не должно быть проблемой, но только после изменения имени DSN я смог подключиться к база данных через isql.

0 голосов
/ 19 сентября 2018

Проверка файла tnsnames.ora, в моем случае, заняла у меня несколько дней, чтобы выяснить, были ли символы табуляции в строке подключения или другие невидимые специальные символы, которые вызывали его сбой.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...