我有46个oracle远程数据库,1个oracle中心数据库,我想将46个远程数据库的数据集中到中心数据库中。我想通过多主体复制来实现,但多主体复制支持所有主体站点数据的对称复制,即所有主体站点的数据一致,不知能否实现主体站点之间的数据不一致,即远程数据库只是中心数据库的一个子集?

解决方案 »

  1.   

    多主体复制时不能通过指定筛选数据的条件来实现单向复制. 
    参考:
    http://www.csdn.com.cn/database/548.htm
    不过上面文章里面的过程复制你可能用得着.如果数据库结构不是很复杂的话,其实可以通过trigger和job来完成这个单向复制的过程。
      

  2.   

    46个数据库中有A表,通过高级复制将这46个数据库中A表的数据集中到中心数据库的A表不知如何实现通过多主体复制可以么?
      

  3.   

    参考:
    http://community.csdn.net/Expert/topic/3801/3801492.xml?temp=.1974298
    http://community.csdn.net/Expert/topic/3800/3800863.xml?temp=.2096979
      

  4.   

    如果网络条件好可以做DBLINK的视图来对应。
    如果为了速度,可以用一一对应的建物化视图!
    然后用视图将多个物化视图包起来!
    如果要全都放在一个物化视图中,也是可以的,在物化视图中写这样的语句:
    SELECT COL...,'A' FROM A@DBLINK
    UNION
    SELECT COL...,'B' FROM B@DBLINK
    .
    .
    .
    但是你要注意一点!!
    这样写存在潜在的问题,如果其中有一个点如C点网络中断或其他原因导致的
    不能连同,将会重试影响其它点的速度!
    所以还是建议你,做46个物化视图,然后用视图将这些物化视图包起来,使其
    不能互相影响,对于客户端用户来说也感觉不到数据的分裂!