在A、B上仅装了服务器端,要装Oracle客户端才行。
服务器上强烈建议不要装客户端,因容易产生冲突。
最好在客户机中建立db_link,
select * from a,b@db_link where...;

解决方案 »

  1.   

    to gladness :
      错误提示是:未处于活动状态。
    但是我在a1上建立B的连接就不会出这个错误TO BlueskyWide :
      A,B,a1,b1都是装的服务器端,我在a1上建立B的连接后测试成功,在B上建立a1的连接报错:未处于活动状态。
      

  2.   

    在OEM下测试,没有错误号。我到SQLPLUS下运行select * from ora_tab1(同义词);
    报错的错误号是:
    ORA_12514 TNS:无法处理服务名A是小机,B是PC服务器,都使用了飘移地址,如果把A换成a1(单PC),在a1上作B的链接就不会有问题。急急急~~~
      

  3.   

    如果是在A上建dblink,那么需要在A上配tnsname,即本地服务名,指向B的数据库。这个服务名用在创建dblink时的using子句中。你是这么做的吗?
    并且一般都要把A的init文件中的global_names=true注释掉
      

  4.   

    这些我都设了的,我在单机PC a1上设置是成功了的啊,,问题是在分主备双机的A、B上设置DBLINK就不行了等待中,,,,,,
      

  5.   

    alter system set global_names=false;
    在每个机子上都运行一下这个命令
    我都试过n次了
      

  6.   

    如果只是2台单机服务器,alter system set global_names=false;应该可以解决。在小机上也试过了?我怎么行不通?
      

  7.   

    都可以连接上,在OEM里面也可以管理。就是在设置dblink后,测试链接的时候出错。
      

  8.   

    回复人: gladness(gladness) ( ) 信誉:100  2003-07-02 14:18:00  得分:0 
     
     
      如果是在A上建dblink,那么需要在A上配tnsname,即本地服务名,指向B的数据库。这个服务名用在创建dblink时的using子句中。你是这么做的吗?
    并且一般都要把A的init文件中的global_names=true注释掉
    ==========================================================================  
     
    赞同!
    或者在A服务器上建DB link到B
    首先设置initA.ora中global_names = false
      

  9.   

    (1)设置initA.ora中global_names = false
    (2)使用Net 8工具配置数据库的网络服务名
    两者缺一不可