Как установить tnsping?

Вопрос:

Как мне установить tnsping?
Я попытался установить oracle-instantclient12.1-basic-12.1.0.2.0-1.x86_64.rpm, и я могу использовать некоторые клиентские команды, но nog tnsping.

Ответ №1

Клиент экземпляра Oracle не включает приложение tsnping. Вы должны запустить “Oracle Universal Installer” и включить его.

Я не помню точно, какой вариант вы должны установить, либо это “Oracle Database Utilities”, либо “Oracle Net”

введите описание изображения здесь

Ответ №2

Также см. McTnsping “отдельную программу Windows, для которой не требуется клиент Oracle”. Он переносной и не требует установки.

Usage 1: McTnsping.exe { <tns entry> | <host>:<port> } [<count>]

<tns entry>    the net service name in the tnsnames.ora file.
<host>:<port>  server name or IP and port (mandatory)
<count>        number of times to check target, default is 1.

Ответ №3

Если тот, кто доберется до такого места, как я… Вот что сработало для меня:

Мгновенный клиент версии 12.2.0.1 + sqlplus + tnsping (скопирован с другого сервера той же версии)

Структура каталогов и env (как в профиле bash):

export ORACLE_BASE=/opt/oracle
export ORACLE_HOME=${ORACLE_BASE}/instant_client122
export PATH=$ORACLE_HOME:$PATH
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$ORACLE_HOME #since all binaries are in $ORACLE_HOME - no bin or lib are present
export TNS_ADMIN=$ORACLE_HOME/network/admin

скопировать с другого сервера на целевой:

'tnsping' to $ORACLE_HOME
'$ORACLE_HOME/network/mesg/tnsus.msb' to $ORACLE_HOME/network/mesg

Затем поместите правильные значения в $ TNS_ADMIN/tnsnames.ora и загрузите переменные env. После этого он должен иметь возможность выполнить tnsping и показать правильное сообщение в качестве ответа.

Ответ №4

Вот что я сделал, чтобы скопировать tnsping на другую машину. В моем случае клиент oracle установлен на C:\Oracle\product\12.1.0\client_1.

Это предполагает, что на целевом компьютере уже установлен Instant Client или аналогичный; и что путь оракула и ключи реестра установлены.

(1) Скопируйте tnsping.exe из источника на конечный аппарат в client_1\bin.

(2) Скопируйте следующие файлы из client_1\bin в client_1\bin:

oraasmclnt12.dll
oracell12.dll
oraclient12.dll
oraclsce12.dll
oracommon12.dll
oracore12.dll
orageneric12.dll
orahasgen12.dll
oraldapclnt12.dll
oran12.dll
orancds12.dll
orancrypt12.dll
oranhost12.dll
oranl12.dll
oranldap12.dll
oranls12.dll
oranro12.dll
orantcp12.dll
orantns12.dll
oraocr12.dll
oraocrb12.dll
oraocrutl12.dll
oraplp12.dll
orapls12.dll
ORASLAX12.DLL
orasnls12.dll
oraunls12.dll
orauts.dll
oravsn12.dll
oraxml12.dll
orazt12.dll
oraztkg12.dll

Это должно быть около 84,6 МБ.

(3) В client_1 на конечном компьютере сделайте резервную копию следующих файлов:

oci.dll
orannzsbb12.dll
oraons.dll
orasql12.dll
orawsec12.dll

Теперь на исходном компьютере найдите эти файлы в client_1\bin и скопируйте их в client_1\ (без корзины) на конечном компьютере, перезаписав существующие файлы. (Примечание: файл oci.dll меньше на ~ 330 КБ, файл orasql12.dll меньше на ~ 300 КБ. Я не уверен, что потеряно, следовательно, резервное копирование).

(4) На целевом компьютере создайте каталог mesg в client_1\Network. Теперь скопируйте следующий файл из источника в место назначения:

client_1\Network\mesg\tnsus.msb

(5) Откройте regedit. Создайте следующий ключ:

HKEY_LOCAL_MACHINE\SOFTWARE\Oracle\KEY_OraClient12Home1_32bit

(с другой машины, похоже, что версия x64 называется HKEY_LOCAL_MACHINE\SOFTWARE\Oracle\KEY_OraClient12Home1, но используемая мной программа tnsping говорит, что она 64-битная, так что…)

Под ключом создайте строку с именем ORACLE_HOME со значением C:\Oracle\product\12.1.0\client_1.

Вы должны сделать это сейчас ($$$ = отредактировано):

C:\Users\$$$>tnsping $$$

TNS Ping Utility for 64-bit Windows: Version 12.1.0.2.0 - Production on 03-APR-2
019 08:47:37

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

Used parameter files:
C:\Oracle\product\12.1.0\client_1\network\admin\sqlnet.ora


Used TNSNAMES adapter to resolve the alias
Attempting to contact (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)
(HOST = $$$)(PORT = $$$))) (CONNECT_DATA = (SERVICE_NAME = $$$
$$$) (SERVER = DEDICATED)))
OK (30 msec)

Устранение

Вот процесс, которым я следовал, разделяя, когда эти шаги неизменно не работают на более поздней версии.

Прежде всего, я просто скопировал tnsping.exe.

Я не случайно выбрал вышеупомянутые dll, насколько я могу сказать, что всем требуется. Я запустил исполняемый файл, и он выдал ошибку, я скопировал бы dll и попытался бы снова:

missing from your computer

Через несколько dll вы столкнетесь с ошибками другого типа:

application unable to start

Если это произойдет, запустите монитор процесса и вставьте фильтр, чтобы ProcessName содержал tnsping, и попробуйте снова запустить программу. Вы должны увидеть что-то вроде следующего. Главное, на что нужно обратить внимание, это то, что он пытается загрузить (в этом примере) orawsec12.dll, что успешно, но затем он продолжает пытаться загрузить dll, смотрящую по разным путям, а затем в конце запускает werfault и Программа заканчивается. Я предполагаю, что он понимает какое-то несоответствие версий и продолжает искать правильную версию.

application unable to start

Отсутствующий раздел реестра будет отображаться следующим образом в мониторе процесса (операция RegOpenKey, результат NAME NOT FOUND):

registry name not found

Если файл tnsus.msb отсутствует, вы должны увидеть что-то вроде следующего в мониторе процесса (операция CreateFile, результат NAME NOT FOUND):

filesystem name not found

Оцените статью
TechArks.Ru
Добавить комментарий