tnsnames.ora在客户端或服务端都可能存在,一般放在$ORACLE_HOME/network/admin下,具体可查看环境变量TNS_ADMIN
这个文件类似于unix 的hosts文件,提供的tnsname到主机名或者ip的对应,只有当sqlnet.ora中的参数
NAMES.DIRECTORY_PATH= (TNSNAMES) 这样,也就是客户端解析连接字符串的顺序中有TNSNAMES时,才会尝试使用这个文件。
一般格式如下:
连接字符串(也就是sqlplus连接时@后的字符串)=
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 数据库IP或者主机名)(PORT = 数据库服务端口))
)
(CONNECT_DATA =
(SERVICE_NAME = 服务名(可通过show parameter service_name获得))
)
)
例子如下:
lgl=
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.68.128)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = easdb)
)
)