Usando o sqlplus como alternativa de tnsping

1

É possível usar o sqlplus como uma alternativa para o tnsping, já que o tnsping não foi instalado com a configuração do oracle. Eu simplesmente quero verificar via script em lote, se as definições do tnsnames.ora são alcançáveis.

Se não, é possível instalar posteriormente tnsping?

    
por Marco Frost 14.11.2013 / 15:50

3 respostas

0

A partir do documento de ajuda do SQL * Plus ( sqlplus --help ):

Usage 2: sqlplus [ [<option>] [{logon | /nolog}] [<start>] ]
...
<start> is: @<URL>|<filename>[.<ext>] [<parameter> ...]

Isso significa que você pode fornecer um caminho para um script que será executado assim que você se conectar / efetuar login.

O exemplo básico absoluto disso é ecoar "sair" para um arquivo e, em seguida, executar esse arquivo, por exemplo,

C:\>echo exit > exit.tmp
C:\>sqlplus /nolog @exit.tmp

SQL*Plus: Release 11.2.0.1.0 Production on Thu Nov 14 15:34:35 2013

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


C:\>del exit.tmp

Claro, acima eu não entrei em um banco de dados, então eu não chequei realmente um banco de dados. Se você quiser verificar uma entrada tnsnames.ora específica, provavelmente precisará fornecer credenciais completas para esse serviço na linha de comando (há possíveis ramificações de segurança), caso contrário, a 'saída' emitida pelo seu script provavelmente será absorvida pelo prompt de nome de usuário normalmente emitido pelo sqlplus (ou que, ou o seu script irá travar no prompt de nome de usuário).

J.

    
por 14.11.2013 / 16:39
0

Há um hack "feio" em algum lugar da internet mostrando como adicionar tnsping na instalação do InstantClient. Algum motivo desconhecido pelo qual a Oracle insiste em não incorporá-lo ao InstantClient, embora tenha sido solicitado várias vezes por vários clientes.

Você pode usá-lo, mas:

  • Prós: tnsping contata apenas o ouvinte, ele não verificará se o banco de dados está realmente em execução. Enquanto o sqlplus também verificará "presença" de SID no lado do servidor de banco de dados.
  • Contras: sqlplus não informará como o nome do banco de dados foi traduzido. Enquanto o tnsping pode apontar você no arquivo sqlnet.ora usado e se TNSNAMES, ONAMES ou LDAPs foram usados.
  • Contras: tnsping também informará hostname e port para o banco de dados
por 14.11.2013 / 16:28
0

Depende do que você realmente queria verificar com o TNSPING; a conexão em si, ou a velocidade da conexão, ou ambos. Mas o SQLPLUS usará a mesma configuração do TNS, de modo que você esteja testando a mesma configuração do TNS.

E se você escrever um script (mesmo Windows ou Linux), você pode gravar o tempo que leva para criar essa conexão, o que seria um objetivo semelhante ao TNSPING.

    
por 17.01.2017 / 13:32