现在我要在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 操作超时。
    对方没有防火墙。
    请问各位大侠,这个问题如何解决。

解决方案 »

  1.   

    [Q]如何穿过防火墙连接数据库 
    [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) 
    你就可以利用数据库服务器的名称访问数据库了