Могу ли я указать номер порта вместе с SID при использовании tnsping?
Я использую Bitvise Tunnelier для подключения к ряду баз данных Oracle с использованием SQL Developer; соединение сделано с localhost и определенным номером порта, и это прекрасно работает. Я хотел бы подключиться через другие средства (например, .NET), и я устраняю неполадки с tnsping.
Есть ли способ запустить tnsping с номером порта, а также с SID? Я пробовал:
tnsping DatabaseSIDName:9001
tnsping DatabaseSIDName;9001
tnsping DatabaseSIDName,9001
Все дают "TNS-03505: Не удалось разрешить имя".
1 ответ
Когда вы используете tnsping, он использует исходные файлы Oracle .ora, чтобы определить, о каких БД он знает. Вы должны увидеть что-то вроде:
$ tnsping myDB
TNS Ping Utility for Linux: Version 10.2.0.1.0 - Production on 24-MAY-2007 08:55:13
Copyright (c) 1997, 2005, Oracle. All rights reserved.
Used parameter files:
/app/oracle/product/10.2.0/db_1/network/admin/sqlnet.ora
Used TNSNAMES adapter to resolve the alias
Attempting to contact...
Вы можете создать свой собственный файл tnsnames.ora и добавить его в свой TNS_ADMIN
переменная окружения для добавления новой БД, порта, SID и т. д. Полный пример выглядит так:
ORA11 =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 9001))
)
(CONNECT_DATA =
(SERVICE_NAME = DatabaseSIDName)
)
)
Просто export TNS_ADMIN=<path to folder containing new tnsnames.ora file>
и повторите попытку пинга. Вот несколько ссылок:
http://www.orafaq.com/wiki/Tnsnames.ora
Oracle - Какой файл имен TNS я использую?
РЕДАКТИРОВАТЬ
И согласно вашему первоначальному примеру / последующему комментарию, простейшим может быть:
$ORACLE_HOME/bin/tnsping <hostname>:<port>/<sid>
Существует множество других опций, таких как EZConnect и sqlplus, которые будут тестировать ту же функциональность.