数据库1中有表x,数据库2中也有表x,结构都是一样的.我想把2中的x表中的所有数据复制到1中的表x,来让他们中的数据保持一致,怎么操作?现在有两个服务器,两个ORACLE,我想在两个服务器之间的X表实现数据同步,就是1中的X表变化,2中的X也跟着变化,这样就不用来回导入导出来更新数据了.谢谢哪位大侠啊?给个解决的方法啊.

解决方案 »

  1.   

     1 将数据库TEST完全导出,用户名system 密码manager 导出到D:daochu.dmp中
       exp system/manager@TEST file=d:daochu.dmp full=y
     2 将数据库中system用户与sys用户的表导出
       exp system/manager@TEST file=d:daochu.dmp owner=(system,sys)
     3 将数据库中的表inner_notify、notify_staff_relat导出
        exp aichannel/aichannel@TESTDB2 file= d:datanewsmgnt.dmp tables=(inner_notify,notify_staff_relat)  4 将数据库中的表table1中的字段filed1以"00"打头的数据导出
       exp system/manager@TEST file=d:daochu.dmp tables=(table1) query=" where filed1 like '00%'"
     
      上面是常用的导出,对于压缩,既用winzip把dmp文件可以很好的压缩。
      也可以在上面命令后面 加上 compress=y 来实现。数据的导入
     1 将D:daochu.dmp 中的数据导入 TEST数据库中。
       imp system/manager@TEST  file=d:daochu.dmp
       imp aichannel/aichannel@HUST full=y  file=d:datanewsmgnt.dmp ignore=y
       上面可能有点问题,因为有的表已经存在,然后它就报错,对该表就不进行导入。
       在后面加上 ignore=y 就可以了。
     2 将d:daochu.dmp中的表table1 导入
     imp system/manager@TEST  file=d:daochu.dmp  tables=(table1)
     
     基本上上面的导入导出够用了。不少情况要先是将表彻底删除,然后导入。
     
    注意:
     操作者要有足够的权限,权限不够它会提示。
     数据库时可以连上的。可以用tnsping TEST 来获得数据库TEST能否连上。
      

  2.   

    专门的集群软件,或者热备软件
    没有的话,用触发器通过dblink来实现。
      

  3.   

    使用物化视图(MATERIALIZED VIEW),google