сбой tnsping ping, хотя я могу успешно подключиться к базе данных - PullRequest
7 голосов
/ 26 января 2011

При попытке установить соединение с моей рабочей станции (на самом деле, я наблюдаю одинаковое поведение на рабочих станциях WinXP32 и Win764) с сервером Oracle, первое, что я всегда пробую, это tnsping.Когда я это делаю, вот что я получаю:

> C:\>tnsping MYDBNAME
> 
> TNS Ping Utility for 32-bit Windows:
> Version 10.2.0.1.0 - Production on
> 25-JAN-2 011 15:03:35
> 
> Copyright (c) 1997, 2005, Oracle.  All
> rights reserved.
> 
> Message 3511 not found; No message
> file for product=NETWORK,
> facility=TNSMessage  3512 not found;
> No message file for product=NETWORK,
> facility=TNSAttempting to contact
> (DESCRIPTION = (ADDRESS_LIST =
> (ADDRESS = (PROTOCOL = TCP) (HOST =
> thisismyservername.com)(PORT = 1577)))
> (CONNECT_DATA = (SID = MYDBNAME)))
> Message 3509 not found; No message
> file for product=NETWORK, facility=TNS

Итак, как вы можете видеть, он правильно определяет мой файл tnsnames и выбирает правильный адрес сервера и порт для указанной базы данных, носбой tnsping с ошибками 3511 и 3509.

Странно, что с помощью sqlplus или Toad с одной и той же рабочей станции я могу успешно подключиться к той же базе данных.

Может кто-нибудь объяснить, что здесь происходит?

FWIW:

Системная переменная среды ORACLE_HOME (и любые другие переменные среды Oracle) имеет значение , а не set.

Обновление

Переменная среды ORACLE_HOME не обязательно должна быть задана, она зависит от машины.Моя конкретная проблема заключалась в том, что Oracle 10g имел / имел известный дефект в том, что tnsping.exe просто не работал.Есть патч

Ответы [ 2 ]

4 голосов
/ 26 января 2011

Я считаю, что это может произойти, если переменная окружения ORACLE_HOME установлена ​​неправильно.tnsping все еще доступен из PATH, но не может найти файлы сообщений.Что показывает echo %ORACLE_HOME% и где на самом деле установлен клиент Oracle?

Это не обязательно повлияет на доступ из Toad, так как ему не требуется прямой доступ к ORACLE_HOME;возможно, вы указали полную строку подключения или сможете выбрать имя службы, если установлено TNS_ADMIN.

Редактировать Возможно, у вас также есть несколько продуктов Oracle, которые мешаютдруг с другом.Если это так, попробуйте зайти в Пуск-> Все программы-> Oracle Installation Products-> Home Selector и выбрать тот, который связан с tnsping, который вы выполняете.(На самом деле это для клиента 9i; я думаю, что для 10g вам может понадобиться универсальный установщик, который изменяется через Установленные продукты-> Среда, но не может проверить).

0 голосов
/ 28 октября 2013

Помимо установки переменной ORACLE_HOME, вы также должны убедиться, что c: \ orant \ bin; запись предшествует любым другим записям пути к другим установленным вами клиентам oracle.

...