数据库A要实时写入数据,数据量很大,峰值是60W/小时。  
 
同时,还要从A上进行查询操作,有多表查询,10分钟一次。  
 
因为A是生产环境,本身压力很大,担心对A的过于频繁的查询会影响性能。所以考虑增加数据库B。将A中的部分表实时(或5分钟内)同步到B。然后在B中进行查询。  
 
我知道快照技术,但应该不可以做到同步吧?  
 
不知道ORACLE9I_Enterprise版本提供什么技术可以做到这样的实时复制或者同步?希望对主数据库A的影响控制到最小。  
 
希望高手指点下,多谢先。

解决方案 »

  1.   

    写个job每5分钟执行一次如下的操作copy from oracle/oracle@myoracle to rman/rman@catdb append rman.append usin
    g select * from oracle.students;
      

  2.   

    写triggers吧,不会像job这般耗
      

  3.   

    可不可实现这样呢?实现a,b两台同步,并把延迟时间反应到0.0几秒的时间,然后分别在A,B中进行查询
      

  4.   

    如果在oracle9i中,可以使用物化视图。如果在oracle10g中,还可以考试使用流技术。总之oracle本身提供的高可用技术完全可以实现你的需求。可参考相关的文档。
      

  5.   

    写triggers应该不行,因为主数据库时刻都在更新。会对主数据库影响太大。我咨询过用做DBA的朋友,他们认为高级复制技术也不太适用。本身主数据库的更新相当频繁,这样的实时同步会对主数据库性能影响太大。我使用的就是oracle9i,starryeyed提到了物化视图。你觉得会对主数据库的性能影响大吗?对比一下,大家觉得直接对主数据库进行查询操作的性能影响与使用同步等其它技术的性能影响,哪一个可以接受?多谢!
      

  6.   

    个人认为,如果不是用第三方的专门产品,应尽量使用oracle本身提供的方案。物化视图我曾经测试过,如果要同步的表不是太多,还是可以接受的。
      

  7.   

    现在看来好象物化视图是比较好的选择。我先找些相关资料看看吧。我对ORACLE了解太少了。顺便问下,北京ORACLE培训哪里做的比较好?想参加一下。原厂的就不考虑了,太贵,公司不给太高的培训费用。