请教各位几个问题:
现状:
    有一个很大生产数据库,一个历史数据库(结构完全一致)。为了把数据从生产数据库移到历史数据库,策略为:生产数据库只保留100天前的数据。
    数据复制采用MV LOG、MV的方式,基本每天把变化的数据复制过去。
    难点在于要在生产数据库把100天前的数据删掉。这个生产库24小时无休工作,不允许停机。
现在的问题:
1:能不能暂停 MV LOG ,有哪些方式(我仅知道删除MV重建的方式)
当然即使能暂停,此期间的生产数据也有问题
2:不暂停MV Log,但指定MV只复制100天内的数据变动,100天外产生的删除动作不同步3:经过测试发现,如果2个数据库中的A表,都增加了字段F1,生产数据库填写、修改的F1,都不会同步到历史数据库。其它字段正常。查询资料发现也是要求 删除MV重建。 这个问题又要怎么解决。4:如果 删除MV重建 ,能否指定更新DATE 大于多少天之后的数据?性能如何?100天大于3千万的记录。Best Regards,
Mark

解决方案 »

  1.   

    MV的频率如何?
    要求实时?不要求的话自己写SQL,用JOB同步
      

  2.   


    MV的频率要求 每天同步一次自己实现,如同bobfang的建议一样,性能无法保证、难度很高、开发代价很高
      

  3.   

    历史表和生产数据不一致就不要用物化视图了吧,
    建议自己编写存储过程,然后JOG定时执行转移就行了。
      

  4.   

    http://dev.firnow.com/course/7_databases/oracle/oraclejs/200855/113330.html快照+触发器 性能如何?
      

  5.   


    你可能没理解我的意思,难在用MV同步,并且 生产数据库 要求删除100天前的数据,而历史数据库不用。你的分区表的MV 倒是个思路!!我去找找资料,你有什么好办法再推荐推荐谢谢
      

  6.   


    这个文章 本身没看懂,我对ORacle 不是很熟,snapshot  看起来和 MV模式差不多。
    但触发器是个好东西!!
    我是否可以在 历史数据库上建立触发器阻止 对超过100天的数据的删除?!谢谢啦,么一个
      

  7.   


    谢谢你的回复,你的思路与java3344520 、bobfang 一样,性能无法保证、难度很高、开发代价很高
      

  8.   

    这个问题其实很简单,已经解决,唉也从另一个侧面反应了CSDN 专家不多啊