我的机器上有两个数据库,a是通过copy光盘上的文件生成的,b是后来建的;
1、我在a库建立了一个dblink到b库,无论我怎么命名,oracle都会在dblink的名字后面加上.us.oracle.com,导致我的dblink总是处于不活动状态;
2、我在b库上建立一个dblink到a库,如果我随便给dblink取个名字,比如叫test,那么这个连接也总是处于不活动状态,只有给dblink取个这样的怪名字a.us.oracle.com,dblink才会处于活动状态,才能够访问。我感觉dblink好像对名字有特殊的要求,不知道是什么原因?是不是什么设置有问题,请高手解惑,谢谢!

解决方案 »

  1.   

    DBLink在创建后,不在调度状态时是不处于活动状态的。按Oracle的说法DBLink的名称只有在做replication的时候是必须要和数据库的名称一致的。一般情况下是不需要一致的。如果你的DBLink不能使用,你看一下你的DBLink是否是public的。
    否则,其他用户是不能使用的。
      

  2.   

    我创建以后,测试连接状态时提示我不处于活动状态,
    而且我试过,使用sql语句的确也不能访问,提示处于不活动状态
      

  3.   

    我知道的。在管理工具中测试是这么说的。如果你的机器和服务器不是一台的话。若有
    CREATE PUBLIC DATABASE LINK Test USING 'ora01';你应该看一下,服务器的Net configration assistant里是否有ora01这项本地服务。或者你是用的连接用户有问题?
      

  4.   

    那就奇怪了为什么a.us.oracle.com这个名字在测试的时候就是活动的呢?
      

  5.   

    查一下你的glabal_names参数,如果是TRUE改为FALSE
    fjmam@FJTVORA>show  parameters global_names;NAME                                 TYPE        VALUE
    ------------------------------------ ----------- ------------------------------
    global_names                         boolean     FALSE
      

  6.   

    我是新手,希望有人指点一下 DBLink 是咋创建的?还有dblink有啥用呢,我能把oracle8.06的数据传到oracle8.17里面吗?分别在不同的机子上。谢谢!!!
      

  7.   

    如果glabal_names=true,就改为false。但是看你的情况a.us.oracle.com能行,说明不是这个问题。
      

  8.   

    创建完成后,要重新启动数据库的。同时glabal_names参数必须为false