小弟是刚使用Oracle不久的小生,最近碰到一个问题,就是有两个数据库,对于我来说都是远程数据库,分别在不同的服务器上,但都在一个大的局域网内,我想A服务器的数据库每次写入数据的同时,再把写入的数据写入到B服务器的数据库上,请问这样能实现么?如果能,怎么实现呢,望各位能详细讲解,多多帮助

解决方案 »

  1.   

    最简单的是在A数据库上建立一个连到B数据上的DBLINK
    然后就可以直接访问B数据库中的表,如:1、在A数据库的tnsnames(不是客服端)中增加建立连到B数据库的连接串,如名叫 Link_B
    文件tnsnames.ora的位置:%ORACLE_HOME%\newwork\admin
    2、使用命令创建dblink
    create public database link db_link_to_b
      connect to <B数据库用户名> identified by <密码>
      using 'Link_B';
    3、直接通过dblink往B数据库表Test写数据即可
    insert into test@db_link_to_b(a,b,c) values(1,2,3);
      

  2.   

    我用的是database link,可以用,但是有个问题,为什么建立了数据链之后手动可以操作B数据库,完全没问题,但是我只是一个数据采集服务器,为什么自动采集的数据不进数据库了呢?我写了一个触发器,让每次进来A的数据在填充A的同时也插入到B一份,触发器没问题,很简单的一个触发器,但是就是不进数据了,把触发器禁止掉,又可以了,奇怪,我想问的是数据链是不是也存在一个关闭连接的情况,每次使用要关闭的,否则不会进数据,呵呵,很菜