¿Cómo genero un archivo tnsnames.ora para conectarme a una base de datos Oracle?

22

He instalado Oracle 11g y puedo conectarme sysmana la base de datos Oracle, pero no hay ningún tnsnames.oraarchivo que pueda encontrar.

¿Necesito generar el archivo tnsnames.ora yo mismo? Si es así, ¿dónde lo coloco? Si no, ¿cómo lo genera Oracle para mí? Si necesito generarlo, ¿cuál es la sintaxis adecuada para el archivo?

usuario897237
fuente

Respuestas:

15

Puede crear fácilmente un archivo tnsnames.ora [texto]. Debería estar en $ ORACLE_HOME / network / admin / y debería verse así:

 ORATST=
 (description=
   (address_list=
     (address = (protocol = TCP)(host = fu.bar)(port = 1521))
   )
 (connect_data =
   (service_name=oratst)
 )
)
Aaron
fuente
Buena respuesta, aunque descubrí que tenía que nombrar mi archivo $HOME/.tnsnames.ora; sqlplus parecía ignorar el camino sugerido en la respuesta.
DuffJ
@DuffJ, entonces algo está mal con su entorno.
milagro173
11

El directorio predeterminado para un archivo tnsnames.ora es

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

Contenido:

<alias> = (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = <ip>)(PORT = <port>))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = <dbname>)
    )
  )
  • alias: puede elegir esto y usarlo como cadena de conexión más adelante.
  • port: el valor predeterminado es 1521

Más información aquí: http://docs.oracle.com/cd/B28359_01/network.111/b28317/tnsnames.htm

Munchi
fuente
66
El directorio predeterminado no es nada por el estilo. Es relativo $ORACLE_HOMEy, por lo tanto, será $ORACLE_HOME/network/admin(donde $ORACLE_HOMEpuede haber múltiples directorios diferentes donde hay más de un nivel de instalación / parche de Oracle) o puede ser anulado por la $TNS_ADMINvariable de entorno. Depende completamente del usuario donde reside el software.
Philᵀᴹ
44
Honestamente, es el valor predeterminado en un sistema Linux ... Si no toca nada, se colocará allí ... por lo tanto, es el valor predeterminado. Pero $ ORACLE_HOME si no se manipula es una mejor solución.
Munchi
He ejecutado Oracle en literalmente cientos de sistemas Linux y ese NO es el predeterminado, ni existe tal cosa. Quizás quiere decir que ese es el ejemplo en la documentación, bueno, tuvieron que elegir algo. No hay ninguna distribución de Linux que conozca que tenga un sistema de archivos / u01 "por defecto", ¡debe haberlo creado y le dijo a Oracle que lo use!
Cayo
2

$ORACLE_HOME/network/admines el directorio donde tnsnames.oraDBCA y / o NetCA crean el archivo.

$ORACLE_HOMEes una ruta como /u01/app ..., es una ruta compatible con OFA que el instalador usa como predeterminada si no es anulada por el instalador.

Sam Ravindhran
fuente
2

Si su sistema operativo es Windows 10 , puede encontrar el tnsnames.oraarchivo en la siguiente ruta de acceso unc:

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

¿Dónde myAccountestá el nombre de tu cuenta de Windows?

S. Mayol
fuente
1
En otras palabras, es %ORACLE_HOME%\NETWORK\ADMIN, ¿verdad?
Andriy M
Si, eso es correcto. Recuerde que Oracle almacena por defecto tnsnames.ora en el directorio $ ORACLE_HOME / network / admin en los sistemas operativos UNIX y en el directorio% ORACLE_HOME% \ network \ admin en los sistemas operativos Windows.
S. Mayol
$ ORACLE_HOME no funcionaba para mí en mi entorno, por lo que conocer el camino completo realmente ayudó ... solo saber que estaba en C: \ app \ ... me dio el inicio que necesitaba y pude rastrearlo desde allí. ¡Me ahorró horas de búsqueda!
Gallus
1

Hasta donde sé, las tnsnames.oranecesidades deben colocarse en la <ORA_INSTALL_FOLDER>\product\11.1.0\client_1\network\admin\carpeta

La documentación se puede encontrar aquí.

Víbora
fuente