本帖最后由 lasmai 于 2010-10-07 19:59:38 编辑

解决方案 »

  1.   


    我想dblink 應該跟 oracle 版本沒有關係,或許是什麼地方設定有問題
      

  2.   

    有可能是网络慢引起的,把SQLNET.INBOUND_CONNECT_TIMEOUT参数(在sqlnet.ora)配置大些试试。
      

  3.   


    A、B兩台服務器 sqlnet.ora 都只有一行
    NAMES.DIRECTORY_PATH= (TNSNAMES, EZCONNECT)從字面意思看SQLNET.INBOUND_CONNECT_TIMEOUT参数 應該是設定在C服務器上吧
    請問  SQLNET.INBOUND_CONNECT_TIMEOUT参数  設定多大比較合適?A、B服務器在同一個局域網,如果是網絡慢問題  B可以,A不行就比較奇怪了
      

  4.   

    这里有几个链接的帖子,你看看呢,跟你的一样,也是这个链接超时原因
    http://junfengwang060905.blog.163.com/blog/static/9422333020091171916663/
    http://www.examer.cn/html/oraclecuowu12170/oracle+%E9%94%99%E8%AF%AF+12170.html
      

  5.   

    你tnsping 一下能互通,说明能链接起,只是执行了一段时间后报错的,估计应该是网络配置问题ORA-12170 TNS:Connect timeout occurredCause: The server shut down because connection establishment or communication with a client failed to complete within the allotted time interval. This may be a result of network or system delays; or this may indicate that a malicious client is trying to cause a Denial of Service attack on the server.Action: If the error occurred because of a slow network or system, reconfigure one or all of the parameters SQLNET.INBOUND_CONNECT_TIMEOUT, SQLNET.SEND_TIMEOUT, SQLNET.RECV_TIMEOUT in sqlnet.ora to larger values. If a malicious client is suspected, use the address in sqlnet.log to identify the source and restrict access. Note that logged addresses may not be reliable as they can be forged (e.g. in TCP/IP).
      

  6.   


    謝謝提供資料!
    我的C服務器使用客戶端、sqlplus連接都沒有問題,就是在A服務器用dblink 連接時才會出現ORA-12170錯誤
      

  7.   


    难道是linux 64位的需要其他配置或者什么的?  不会吧,不是很清楚了这个。你试试采用所提供的那些方法做下相应的配置呢
      

  8.   

    先确定tnsping能通不了,这点很重要。
      

  9.   

    新建測試環境  RHEL 5.4 X86_64 + ORACLE 10.2.0.1 linux 64  問題還是一樣,難道跟版本有關係?
    希望大家指點!
      

  10.   

    是否未配置本地服务?类似如下创建,看是否可行。
    create database link linkfwq 
       connect to fzept identified by neu 
       using '(DESCRIPTION = 
       (ADDRESS_LIST = 
       (ADDRESS = (PROTOCOL = TCP)(HOST = 10.142.202.12)(PORT = 1521)) 
       ) 
       (CONNECT_DATA = 
       (SERVICE_NAME = fjept) 
       ) 
       )'
      

  11.   

    新建另一測試環境 ORACLE LINUX 5.5 X86_64 + ORACLE 10.2.0.1 linux 64 問題還是一樣
      

  12.   

    奇怪的現象
    在A服務器裡面使用sqlplus 執行select * from tablename@dblink沒有問題
    但在客戶端電腦使用sqlplus 執行select * from tablename@dblink 卻提示  ORA-12170: TNS: 發生連線逾時非常不解,請各位大大提點!