我有A,B两个数据库,A、B不在同一台机子上,我想将A中的a表复制到B上,目前我有两中方法;
方法一:通过数据库快照功能实现,但要求表a一定要有主键,可a表没有,且由于a表是已存在的生产用数据,不能随便修改结构,所以此方法不同;
方法二:在a表上建trigger,只要在a表上有数据更新,马上就在数据库B的对应表中插入一条记录。由于a表的数据量很大,所以此trigger的操作会很频繁,我想请教高手,此中trigger操作对数据库的性能上影响会不会大???
  谢谢

解决方案 »

  1.   

    快照刷新有两方式:
    1、primary key;2、rowid
    两个第一种速度会快点,但你对原表加一个primary key是不会影响数据结构的,你就换新的做吧。
      

  2.   

    补充:
    trigger对原表操作太频繁,并且记录的数据量也大,一条记录的内容你都得记录下来,这会降低数据库的性能。而数据库内部机制SNAPLOG就不会,具体你可查看一下MLOG$_TABLE!!
      

  3.   

    楼主的需求还不是很明确,是只是一次性传输(以后就不用传输了),还是周期性增量传输不过两个可能的话都可以使用以下方法:
    1,试试ms dts,建一个dts报,定时在系统空闲的时间调度执行
    2,在oracle里面见db link,建存储过程定时执行数据传输
    3,imp/exp热备份增量更新