Могу ли я указать номер порта вместе с 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, которые будут тестировать ту же функциональность.

Другие вопросы по тегам