Como faço para gerar um arquivo tnsnames.ora para conectar-se a um banco de dados Oracle?

22

Instalei o Oracle 11g e posso conectar- sysmanme ao banco de dados Oracle, mas não há nenhum tnsnames.oraarquivo que eu possa encontrar.

Preciso gerar o arquivo tnsnames.ora sozinho? Se sim, onde eu o coloco? Caso contrário, como o Oracle o gera para mim? Se eu precisar gerá-lo, qual é a sintaxe apropriada para o arquivo?

user897237
fonte

Respostas:

15

Você pode criar facilmente um arquivo tnsnames.ora [text]. Ele deve estar em $ ORACLE_HOME / network / admin / e deve ser algo como isto:

 ORATST=
 (description=
   (address_list=
     (address = (protocol = TCP)(host = fu.bar)(port = 1521))
   )
 (connect_data =
   (service_name=oratst)
 )
)
Aaron
fonte
Boa resposta, embora tenha achado que precisava nomear meu arquivo $HOME/.tnsnames.ora; o caminho sugerido na resposta parecia ser ignorado pelo sqlplus.
DuffJ
@DuffJ, então algo está errado com seu ambiente.
miracle173
11

O diretório padrão para um arquivo tnsnames.ora é

/u01/app/oracle/product/<version>/<dbname>/network/admin/tnsnames.ora

Conteúdo:

<alias> = (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = <ip>)(PORT = <port>))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = <dbname>)
    )
  )
  • alias: você pode escolher isso e usá-lo como cadeia de conexão posteriormente.
  • port: o padrão é 1521

Mais informações aqui: http://docs.oracle.com/cd/B28359_01/network.111/b28317/tnsnames.htm

Munchi
fonte
6
O diretório padrão não é nada disso. É relativo $ORACLE_HOMEe, portanto, será $ORACLE_HOME/network/admin(onde $ORACLE_HOMEpode haver vários diretórios diferentes onde há mais de um nível de instalação / patch do Oracle) ou pode ser substituído pela $TNS_ADMINvariável de ambiente. Depende completamente do usuário em que o software reside.
Philᵀᴹ
4
Honestamente, é o padrão em um sistema Linux ... Se você não tocar em algo, ele será colocado lá ... sendo o padrão. Mas $ ORACLE_HOME se não for adulterado, é realmente uma solução melhor.
Munchi
Eu executei o Oracle em literalmente centenas de sistemas Linux e esse NÃO é o padrão, nem existe. Talvez você queira dizer que é o exemplo da documentação, eles tiveram que escolher alguma coisa. Não há nenhuma distribuição Linux que eu conheça que tenha um sistema de arquivos / u01 "por padrão", você deve ter criado e dito à Oracle para usá-lo!
Gaius
2

$ORACLE_HOME/network/adminé o diretório em que o tnsnames.oraarquivo é criado pelo DBCA e / ou NetCA.

$ORACLE_HOMEé um caminho parecido /u01/app ..., é um caminho compatível com OFA que o instalador usa como padrão se não for substituído pelo instalador.

Sam Ravindhran
fonte
2

Se o seu sistema operacional for o Windows 10 , você poderá encontrar o tnsnames.oraarquivo no seguinte caminho unc:

C:\app\myAccount\product\11.2.0\dbhome_1\NETWORK\ADMIN

Onde myAccountestá o nome da sua conta do Windows.

S. Mayol
fonte
1
Em outras palavras, está %ORACLE_HOME%\NETWORK\ADMINcerto?
21816 Andriy M
Sim isso está certo. Lembre-se do Oracle, por padrão, armazene tnsnames.ora no diretório $ ORACLE_HOME / network / admin nos sistemas operacionais UNIX e no diretório% ORACLE_HOME% \ network \ admin nos sistemas operacionais Windows.
Mayol
$ ORACLE_HOME não estava funcionando para mim no meu ambiente, portanto, conhecer o caminho completo realmente ajudou ... apenas saber que estava em C: \ app \ ... me deu o começo que eu precisava e consegui rastreá-lo de há. Economizou-me horas de pesquisa!
Gallus
1

Tanto quanto eu sei, as tnsnames.oranecessidades devem ser colocadas na <ORA_INSTALL_FOLDER>\product\11.1.0\client_1\network\admin\pasta

A documentação pode ser encontrada aqui

Víbora
fonte