powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Почему одни tnsname работают, а другие нет?
25 сообщений из 27, страница 1 из 2
Почему одни tnsname работают, а другие нет?
    #39812939
Bambarbeya
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем добрый день!
Я занимаюсь разработкой на PHP и приходится работать с базами Oracle, поэтому прошу прощения, если задаю примитивные вопросы.
Для коннекта пользуюсь instantclient (12.1.0.2.0).
Проблема в том, что по одним алиасам (net_service_name в терминологии Oracle) подключение проходит нормально, по другим - либо неверные логин и пароль, либо ошибка адаптера, хотя по полному дескриптору соединения в виде host:1521/service соединение устанавливается без проблем.
Что интересно, через sqlplus (работаю в Win10) к проблемной базе не удаётся подключиться никакими ухищрениями - выдаёт вышеупомянутые ошибки. А вот через SQLdeveloper или из phpStorm - получается.
Может быть кто-то подскажет как такое возможно и как настроить алиасы так, чтобы соединение устанавливалось именно по TNS?
Чем они принципиально отличаются от других TNS, с которыми всё нормально?
И ещё. Правильно ли я понимаю, что host в дескрипторе не обязательно должен резолвиться через DNS? Оракл же как-то самостоятельно его резолвит?
...
Рейтинг: 0 / 0
Почему одни tnsname работают, а другие нет?
    #39812956
Фотография Vadim Lejnin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
На компе может быть несколько ORACLE_HOME, в каждой из которых может быть свой tnsnames.ora
Можно указать директорию с общим tnsnames.ora, где любой Oracle Client будет искать файлы настройки TNS (переменная TNS_ADMIN)
20879477

((PROTOCOL=TCP)(HOSTNAME=...)) - это уровень TCP/IP протокола, сам oracle этим не занимается.
Даже если используется oracle gds (для RAC), то tcp dns все равно используется
...
Рейтинг: 0 / 0
Почему одни tnsname работают, а другие нет?
    #39813021
Bambarbeya
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Vadim Lejnin,

У меня в окружении только по одному экземпляру переменных ORACLE_HOME, TNS_ADMIN и LD_LIBRARY_PATH. Все ведут в директорию instantclient.

Все host пингуются без проблем. Все по короткому имени (не FDQN). Но одни работают по TNS, а другие выдают либо ошибку авторизации, либо ошибку адаптера, хотя по полному дескриптору подключаются из SQLdeveloper и phpStorm.

Вот думаю, может что-то не так прописано для listeners на сервере.
Или действуют какие-то блокировки по IP, о которых я не знаю... Но тогда коннекта вообще не было бы ни так ни сяк.
...
Рейтинг: 0 / 0
Почему одни tnsname работают, а другие нет?
    #39813033
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Bambarbeyaлибо ошибку авторизации
Ошибка авторизации, как-бы это и есть "ошибка авторизации"

Bambarbeyaлибо ошибку адаптера
обычно это: Антивирусы, FireWall, неправильно-криво установленный клиент
Можно включить лог Net80 и посмотреть на чем именно падает. Возможно возникнут идеи.

А вообще:
Базы и клиенты разные (версия, настройка)
Ошибки разные
Автор ни версии баз не указал, ни сообщения об ошибках корректно не привел. Что-то не работает.....
...
Рейтинг: 0 / 0
Почему одни tnsname работают, а другие нет?
    #39813039
Вячеслав Любомудров
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BambarbeyaНо одни работают по TNS, а другие выдают либо ошибку авторизации, либо ошибку адаптера, хотя по полному дескриптору подключаются из SQLdeveloper и phpStorm.Ну дык и покажи свой tnsnames.ora, как минимум
...
Рейтинг: 0 / 0
Почему одни tnsname работают, а другие нет?
    #39813060
Bambarbeya
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вот 2 алиаса, первый из которых работает нормально, а второй тот самый - проблемный.

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
WEB =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = oracle-web)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVICE_NAME = WEBER)
    )
  )
 
COLLECTOR =
(DESCRIPTION =
 (ADDRESS = (PROTOCOL = TCP)(HOST = collector)(PORT = 1521))
 (LOAD_BALANCE = YES)
 (CONNECT_DATA =
  (SERVER = DEDICATED)
  (SERVICE_NAME = webcoll)
 )
)



При попытке коннекта по TNS с помощью sqlplus получаю

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
C:\Users\xxxxxxxxx>sqlplus xxxxx@COLLECTOR

SQL*Plus: Release 12.1.0.2.0 Production on Tue May 14 14:49:34 2019

Copyright (c) 1982, 2014, Oracle.  All rights reserved.

Enter password:
ERROR:
ORA-01017: invalid username/password; logon denied



При попытке коннекта по дескриптору

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
 C:\Users\xxxxxxxxx>sqlplus 'xxxxx@//collector:1521/webcoll'

SQL*Plus: Release 12.1.0.2.0 Production on Tue May 14 14:53:21 2019

Copyright (c) 1982, 2014, Oracle.  All rights reserved.

Enter password:
ERROR:
ORA-12560: TNS:protocol adapter error



Через SQL developer всё подключается нормально, но он у меня версии 18.3.0.277

...
Рейтинг: 0 / 0
Почему одни tnsname работают, а другие нет?
    #39813067
Вячеслав Любомудров
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Собственно, об этом я и подозревал -- моя любимая тема -- синтаксис файлов tnsnames/listener.ora, в частности, важность начала строки

Если лениво лезть в доку -- просто формируй их через netca (правдв, для этого нужен полный клиент)
...
Рейтинг: 0 / 0
Почему одни tnsname работают, а другие нет?
    #39813071
Вячеслав Любомудров
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BambarbeyaПри попытке коннекта по дескриптору

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
 C:\Users\xxxxxxxxx>sqlplus 'xxxxx@//collector:1521/webcoll'

SQL*Plus: Release 12.1.0.2.0 Production on Tue May 14 14:53:21 2019

Copyright (c) 1982, 2014, Oracle.  All rights reserved.

Enter password:
ERROR:
ORA-12560: TNS:protocol adapter error


Это называется EZCONNECT
И, к сожалению, он требует указания пароля в строке соединения
sqlplus username/password@host:port:sid
или
sqlplus username/password@host:port/service_name
...
Рейтинг: 0 / 0
Почему одни tnsname работают, а другие нет?
    #39813072
Фотография andrey_anonymous
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Попробуйте так:
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
WEB =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = oracle-web)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVICE_NAME = WEBER)
    )
  )
 
COLLECTOR =
  (DESCRIPTION =
     (ADDRESS = (PROTOCOL = TCP)(HOST = collector)(PORT = 1521))
     (LOAD_BALANCE = YES)
     (CONNECT_DATA =
       (SERVER = DEDICATED)
       (SERVICE_NAME = webcoll)
  )
)



Киргуду!
...
Рейтинг: 0 / 0
Почему одни tnsname работают, а другие нет?
    #39813076
Вячеслав Любомудров
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andrey_anonymousПопробуйте так:
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
WEB =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = oracle-web)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVICE_NAME = WEBER)
    )
  )
 
COLLECTOR =
  (DESCRIPTION =
     (ADDRESS = (PROTOCOL = TCP)(HOST = collector)(PORT = 1521))
     (LOAD_BALANCE = YES)
     (CONNECT_DATA =
       (SERVER = DEDICATED)
       (SERVICE_NAME = webcoll)
  )
)



Киргуду! Аккуратней надо
...
Рейтинг: 0 / 0
Почему одни tnsname работают, а другие нет?
    #39813078
Фотография -2-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вячеслав ЛюбомудровЭто называется EZCONNECTЭто называется подключение к дефолтной БД.
...
Рейтинг: 0 / 0
Почему одни tnsname работают, а другие нет?
    #39813079
Вячеслав Любомудров
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Это называется глупость
...
Рейтинг: 0 / 0
Почему одни tnsname работают, а другие нет?
    #39813080
Фотография andrey_anonymous
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вячеслав ЛюбомудровАккуратней надо
Нас тут двое отметилось, я и выделятор в хроме - снизу вверх мышью мазнул, он не выделил хвостовые пробелы, а вот ежели сверху вниз - то показал :)
...
Рейтинг: 0 / 0
Почему одни tnsname работают, а другие нет?
    #39813083
Фотография andrey_anonymous
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
-2-Вячеслав ЛюбомудровЭто называется EZCONNECTЭто называется подключение к дефолтной БД.
Не надо путать локальный коннект без указания дескриптора и ezconnect
...
Рейтинг: 0 / 0
Почему одни tnsname работают, а другие нет?
    #39813084
Фотография SY
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BambarbeyaПри попытке коннекта по дескриптору


@'host:port/service'

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
C:\>sqlplus scott@'localhost:1523/pdb1sol122'

SQL*Plus: Release 12.2.0.1.0 Production on Tue May 14 08:31:17 2019

Copyright (c) 1982, 2016, Oracle.  All rights reserved.

Enter password:
Last Successful login time: Tue May 14 2019 08:29:29 AMERICA/NEW_YORK EDT

Connected to:
Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 - 64bit Production

SQL>



SY.
...
Рейтинг: 0 / 0
Почему одни tnsname работают, а другие нет?
    #39813085
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не спец по TNSNAMES.ORA, т.к. у меня все работает и перечитывать документации ради чужих проблем лениво )))

Но я бы просто: увидив. что синтаксис совершенно разный => скопировал бы первое/рабочее описание и поменял бы названия и адреса.

В первом случае - есть ADDRESS_LIST, во второе его зачем-то забыли
Зачем-то добавлено LOAD_BALANCE (при одном адресе? как это работает?)
DEDICATED может добавили осмысленно, а может просто так..... etc....
...
Рейтинг: 0 / 0
Почему одни tnsname работают, а другие нет?
    #39813088
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вячеслав ЛюбомудровСобственно, об этом я и подозревал -- моя любимая тема -- синтаксис файлов tnsnames/listener.ora, в частности, важность начала строки

Если лениво лезть в доку -- просто формируй их через netca (правдв, для этого нужен полный клиент)

А как ошибки в TNSNAMES.ora могут привести к "invalid username/password; logon denied" ?
Лично меня это немного изумляет (((
...
Рейтинг: 0 / 0
Почему одни tnsname работают, а другие нет?
    #39813090
Bambarbeya
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вячеслав ЛюбомудровЭто называется EZCONNECT
И, к сожалению, он требует указания пароля в строке соединения
sqlplus username/password@host:port:sid
или
sqlplus username/password@host:port/service_name

Вячеслав, спасибо за ответ.
Я, конечно, пытался подключиться с паролем, но после этого курсор переходил на следующую строку и всё.
Поэтому решил вводить его в интерактиве, чтобы посмотреть на ошибки.
Стало быть, так делать нельзя?
...
Рейтинг: 0 / 0
Почему одни tnsname работают, а другие нет?
    #39813094
Bambarbeya
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ого, сколько уже накидали, пока я ответ писал...
...
Рейтинг: 0 / 0
Почему одни tnsname работают, а другие нет?
    #39813123
Bambarbeya
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
SYBambarbeyaПри попытке коннекта по дескриптору


@'host:port/service'

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
C:\>sqlplus scott@'localhost:1523/pdb1sol122'

SQL*Plus: Release 12.2.0.1.0 Production on Tue May 14 08:31:17 2019

Copyright (c) 1982, 2016, Oracle.  All rights reserved.

Enter password:
Last Successful login time: Tue May 14 2019 08:29:29 AMERICA/NEW_YORK EDT

Connected to:
Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 - 64bit Production

SQL>



SY.

Всё равно invalid username/password; logon denied

С дополнительными отступами тоже ничего не изменилось.
Прописал полное название хоста и вдруг в SQLdeveloper и phpStorm стало коннектиться по TNS.
Притом, что DNS исправно работает как для короткого, так и для длинного имени.
Для этого имени у нас выполняется балансировка на несколько IP.
Через sqlplus ни в какую не соединяет :)
Спасибо всем за ответы.
...
Рейтинг: 0 / 0
Почему одни tnsname работают, а другие нет?
    #39813124
Фотография -2-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andrey_anonymous-2-Это называется подключение к дефолтной БД.Не надо путать локальный коннект без указания дескриптора и ezconnectВ винде программа получит аргумент 'abc...', как есть, с кавычками. Это означает, что весь аргумент username. После интерактивного запроса пароля подключение пойдет к БД из переменных окружения.
С sqlplus 18 поведение изменилось и теперь предположительно из 'xxx/yyy@zzz' получается:
username='xxx
password=yyy
database=zzz'
...
Рейтинг: 0 / 0
Почему одни tnsname работают, а другие нет?
    #39813132
Вячеслав Любомудров
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BambarbeyaС дополнительными отступами тоже ничего не изменилось.
Показывай, не стесняйся
...
Рейтинг: 0 / 0
Почему одни tnsname работают, а другие нет?
    #39813135
j2k
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А на второй базе есть тот пользователь, под которым вы пытаетесь законнектиться? Пробовали логин указывать в полностью верхнем/нижнем регистре?
...
Рейтинг: 0 / 0
Почему одни tnsname работают, а другие нет?
    #39813325
Bambarbeya
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
j2kА на второй базе есть тот пользователь, под которым вы пытаетесь законнектиться? Пробовали логин указывать в полностью верхнем/нижнем регистре?
Да, да, конечно.
С регистром тоже по-всякому пробовал.
Заметил одну закономерность - только этот проблемный алиас у нас реально имеет 3 разделяемых IP, все остальные - по одному, хотя у некоторых тоже директива "LOAD_BALANCE = YES" зачем-то прописана. Возможно балансировщик как-то влияет на результат.
Кроме того, мы под сквидом сидим. Он здорово всем кровь портит. Но после настройки среды (прописывания http_proxy) вроде пускает без жалоб.

Собственно, сам sqlplus мне не так важен, я использовал его лишь для тестирования коннекта. Главное, чтобы IDE подключалась к базе и сайты открывались. После прописывания FDQN проблема с подключением по TNS снялась, поэтому, в принципе, проблема худо-бедно решена. А почему sqlplus такой неукротимый для проблемного алиаса, я ума не приложу.

Что касается отступов, то даже не знаю, что показывать.
Я сделал по два пробела на каждый уровень вложенности, проверил концевые пробелы и так далее. Картина всё та же - в sqlDev и IDE коннект есть обоими способами, через sqlplus нет никакого. То есть вряд ли дело в синтаксисе. В конце концов, сделал отступы по образу и подобию остальных секций, но результат не изменился.
...
Рейтинг: 0 / 0
Почему одни tnsname работают, а другие нет?
    #39813351
Фотография Stax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BambarbeyaС регистром тоже по-всякому пробовал.

імхо
если есть

Enter password:
ERROR:
ORA-01017: invalid username/password; logon denied

то он к какой-то базе достучался
заведите нового тестового useser-a (не sysdba), с понятным простым паролем и попробуйте подконектится

зи
мож надо sss as sysdba

pss
проверить еще и sqlnet.ora
у меня влоб прописано
names.directory_path = (TNSNAMES)


.....
stax
...
Рейтинг: 0 / 0
25 сообщений из 27, страница 1 из 2
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Почему одни tnsname работают, а другие нет?
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]