2015-05-12 1 views
1

, когда я пытаюсь подключить любую базу данных в моем TNSNames.ora файле SQLPLUS бросаетORA 12154 - не удалось подключиться с жабой/SQLplus

ORA-12154: TNS could not resolve service name 

Я уже проверил этот материал:

TNS_ADMIN environment variable is defined as "C:\oraclexe\app\oracle\product\10.2.0\server\NETWORK\ADMIN" 

"C:\oraclexe\app\oracle\product\10.2.0\server\NETWORK\ADMIN\tnsnames.ora" was located 

The following connect descriptor was found for my_db in the tnsnames.ora file 

my_db= 
    (DESCRIPTION= 
    (ADDRESS= 
     (PROTOCOL=TCP) 
     (HOST=local.db) 
     (PORT=1521) 
    ) 
    (CONNECT_DATA= 
     (SID=SCMPROD) 
    ) 
) 

"C:\oraclexe\app\oracle\product\10.2.0\server\NETWORK\ADMIN\sqlnet.ora" was located 

NAMES.DIRECTORY_PATH specifies TNSNAMES in the sqlnet.ora file 

вопрос:

Что не хватает?

UPDATE

Теперь на Sqlplus используя the usr/[email protected] строку подключения работает

В не может быть ошибка на сервере, потому что на моем старом компьютере он все еще принимает мое подключение к всей моей компании работает на нем.

tnsname.ora

SELFTEST= 
    (DESCRIPTION= 
    (ADDRESS= 
     (PROTOCOL=TCP) 
     (HOST=10.100.2.7) 
     (PORT=1521) 
    ) 
    (CONNECT_DATA= 
     (SERVER=dedicated) 
     (SERVICE_NAME=GOLDtest) 
    ) 
) 

проблема все еще существует, пытаясь соединиться с Жаба для Oracle ...

+0

Как именно вы пытаетесь подключиться? Ошибка не соответствует файлу - запись TNS, которую вы указали, имеет SID, а ошибка относится к имени службы. Итак, какова ваша строка соединения, и какова соответствующая запись в 'tnsnames.ora'? Является ли база данных, к которой вы пытаетесь подключиться, на самом деле, и у вас есть правильное имя службы? Что показывает статус lsnrctl на этом сервере? –

+0

@AlexPoole это ответ 'TNS-01101: Не удалось найти имя службы 10.100.2.7.1521' для этого сервера. Но на другом, с той же проблемой, он дает мне «TNS-01189: слушатель не смог аутентифицировать пользователя» –

+0

Проверьте содержимое 'listener.ora' на этом сервере, похоже, что у вас есть ошибка. ('.1521' выглядит странно, но так же получается пунктирное значение в качестве имени службы). Вы предоставляете только частичную информацию, поэтому трудно точно определить, что не так с вашей конфигурацией. –

ответ

1

ORA-12154: TNS не может разрешить имя службы

my_db= 
    (DESCRIPTION= 
    (ADDRESS= 
     (PROTOCOL=TCP) 
     (HOST=local.db) 
     (PORT=1521) 
    ) 
    (CONNECT_DATA= 
     (SID=SCMPROD) 
    ) 
) 

Ошибка о неправильном имени службы. Я вижу ваш tnsnames.ora не имеет имя_источника, скорее вы упомянули SID. Вероятно, это и есть причина ошибки.

Вы можете редактировать tnsnames.ora как:

SCMPROD = 
(DESCRIPTION = 
    (ADDRESS_LIST = 
    (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521)) 
    ) 
(CONNECT_DATA = 
    (SERVICE_NAME = SCMPROD) 
) 
) 

Предполагая, SCMPROD является service_name.

+0

Ошибка будет ссылаться на SID, если она использует этот псевдоним TNS? Я не думаю, что мы видим соответствующие записи TNS. (Хотя я также чувствую, что мне нужен кофе ...) –

+0

@AlexPoole Что я рассматриваю, так это то, что OP не показывает нам всю картину и не говорит нам о своей версии понимания проблемы. При ошибках tns в конце концов это обычно глупая проблема. Это все о том, как правильно описать проблему. :-) –

+0

Да, согласитесь полностью. Мои комментарии по этому вопросу пытаются более дразнить. В настоящее время выглядит как проблема 'listener.ora', но сказать сложно. –

0

От source

ORA-12154: TNS: не удалось устранить указанный идентификатор подключения
Причина: соединение с базой данных или другой службой было запрошено с использованием идентификатора соединения, а указанный идентификатор соединения не был разрешен в дескриптор соединения с использованием одного из методов, определяющих имена . Например, если тип идентификатора подключения был именем сетевой службы, то сетевое имя службы не может быть , найденное в репозитории методов именования, или в репозитории не может быть , который находится или достигнут.
Действие:

  • Если вы используете локальную именование (TNSNAMES.ORA файл):

  • Убедитесь, что «TNSNAMES» в качестве одного из значений параметра NAMES.DIRECTORY_PATH в профиле Oracle Net (SQLNET.ORA)

  • Проверьте, что файл TNSNAMES.ORA существует и находится в соответствующем каталоге и доступен.

  • Проверьте, что имя сетевого сервиса, используемое как идентификатор соединения, существует в файле TNSNAMES.ORA.

  • Убедитесь, что в файле TNSNAMES.ORA нет синтаксических ошибок. Ищите непревзойденные круглые скобки или бродячие символы. Ошибки в файле Файл TNSNAMES.ORA может сделать его непригодным.

  • Если вы используете каталог имен:

  • Убедитесь, что «LDAP» указан в качестве одного из значений параметра NAMES.DIRETORY_PATH в Чистом профиле Oracle (SQLNET.ORA).

  • Проверьте, что сервер каталогов LDAP включен и доступен.

  • Убедитесь, что имя сети или имя базы данных, используемые в качестве идентификатора подключения, настроены в каталоге.

  • Убедитесь, что контекст по умолчанию используется правильно, указав полное сетевое имя службы или полный LDAP DN как подключения идентификатора

  • Если вы используете Easy Connect именование:

  • Убедитесь, что «EZCONNECT» указан как одно из значений параметра NAMES.DIRETORY_PATH в профиле Oracle Net (SQLNET.ORA).

  • Убедитесь, что указаны имя хоста, порта и службы.

  • Попробуйте включить идентификатор соединения в кавычки. Для получения дополнительной информации об именовании см. Руководство администратора Oracle Net Services или операционную систему Oracle .

+0

Это не ошибка, которую получает OP. –

+0

Да, ошибка: «ORA-12154: TNS не удалось разрешить имя службы» –

Смежные вопросы