现在我要在INTERNET 上连接一个远程用户,对方是用ADSL来上网的。
但是对方的ADSL不是直接连在电脑上边,而是通过一个网关,内部的机器
都通过这个网关来上INTERNET。
现在我要连接对方内网的一台ORACLE服务器,在网关上做了IP和端口映射,
这样的话,我访问对方ADSL的上网IP,就可以自动转换到它的内网ORACLE服务器。
然后,我配置了TNSNAMES.ORA,这样写:
remote =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 61.122.111.121)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = oracle)
)
) 再tnsping remote,OK,正常。
然后再SQLPLUS SYSTEM/MANAGER@REMOTE,出现ora-12535:tns 操作超时。
对方没有防火墙。
请问各位大侠,这个问题如何解决。
但是对方的ADSL不是直接连在电脑上边,而是通过一个网关,内部的机器
都通过这个网关来上INTERNET。
现在我要连接对方内网的一台ORACLE服务器,在网关上做了IP和端口映射,
这样的话,我访问对方ADSL的上网IP,就可以自动转换到它的内网ORACLE服务器。
然后,我配置了TNSNAMES.ORA,这样写:
remote =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 61.122.111.121)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = oracle)
)
) 再tnsping remote,OK,正常。
然后再SQLPLUS SYSTEM/MANAGER@REMOTE,出现ora-12535:tns 操作超时。
对方没有防火墙。
请问各位大侠,这个问题如何解决。
[A]这个问题只会在WIN平台出现,UNIX平台会自动解决。
解决方法:
在服务器端的SQLNET.ORA应类似
SQLNET.AUTHENTICATION_SERVICES= (NTS)
NAMES.DIRECTORY_PATH= (TNSNAMES, ONAMES, HOSTNAME)
TRACE_LEVEL_CLIENT = 16
注册表的HOME0加[HKEY_LOCAL_MACHINE]
USE_SHARED_SOCKET=TRUE [Q]如何利用hostname方式连接数据库
host name方式只支持tcp/ip协议的小局域网
修改listener.ora中的如下信息
(SID_DESC =
(GLOBAL_DBNAME = ur_hostname) --你的机器名
(ORACLE_HOME = E:\oracle\ora92) --oracle home
(SID_NAME = orcl) --sid name
)
然后在客户端
的sqlnet.ora中,确保有
NAMES.DIRECTORY_PATH= (HOSTNAME)
你就可以利用数据库服务器的名称访问数据库了