还有,我说的tnsnames.ora的配置你在你的数据库的server端, 
简单说: 
数据库a建立到数据库b的db_link 
必须在数据库a的server端的tnsnames.ora里面配置数据库b的连接串。 
而不是在你的client端配置了数据库b的连接串db_link就好使了。
-------------------------------------------------------------------
我只是在客户端配置了连接串。会不会是这个原因可是我又进不了服务端。郁闷

解决方案 »

  1.   

    你没有权限配置服务器上的tnsnames.ora,那么可以用第二种方式创建DB LINK,你需要确认IP、端口、服务名是正确的,你可以在客户端配置,测试能否正常连接数据库。
    检查global_names设置:
    SQL>SHOW PARAMETER GLOBAL_NAMES
    修改:
    SQL>alter system set global_names=true scope=both;
      

  2.   

    create public database link TESTLINK
      connect to username identified by "password" 
      using '(DESCRIPTION =
        (ADDRESS_LIST =
          (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.1)(PORT = 1521))
        )
        (CONNECT_DATA =
          (SERVICE_NAME = rbdb)
        )
      )';
    问题解决了。这种创建方式是没有问题的。只是我这里一直报错 TIMEOUT.又百度了一会,突然想起来需要连接的服务端是要开VPN才能连接的,我本机开了VPN通过client就可以访问,但是服务端没有开VPN,本地通过PLSQL连接啥的都正常,但是创建了DBLINK后就不正常了,一直连接超时。然后就通过反过来做,在需要VPN的服务端去创建DBLINK解决。汗。。
      

  3.   

    create public database link TESTLINK
      connect to username identified by "password" 
      using '(DESCRIPTION =
        (ADDRESS_LIST =
          (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.1)(PORT = 1521))
        )
        (CONNECT_DATA =
          (SERVICE_NAME = rbdb)
        )
      )';
    问题解决了。这种创建方式是没有问题的。只是我这里一直报错 TIMEOUT.又百度了一会,突然想起来需要连接的服务端是要开VPN才能连接的,我本机开了VPN通过client就可以访问,但是服务端没有开VPN,本地通过PLSQL连接啥的都正常,但是创建了DBLINK后就不正常了,一直连接超时。然后就通过反过来做,在需要VPN的服务端去创建DBLINK解决。汗。。
      

  4.   

    我也遇到跟你一样的情况了,但是按你说的在需要访问的库上反着创建db link ,然后利用简单的查询测试了下提示无监听呢?