日期:2014-05-17  浏览次数:20712 次

Oracle 关于数据完整性的讨论
大家好:
   最近开发一个项目,偏向数据收集类的,数据量大概在百万/天,可以理解为表对表的拷贝。
   举个例子:DA.Table1 到 DB.Table1,A、B表结构一样,正常增量情况下,两库的数据会一致。
   但当DA删除DB已有的数据时候,这时候就出现无法保持一致的问题。
   想到一些办法,但都有利由有弊
   1)采用触发器,在DA每张表里创建删除触发器,记录删除的数据,再通过程序去将DB里面相同的数据删除。这种是最直接但可靠性比较低
   2) 采用日志归档或者闪回规则,这相对来说比价可靠,但感觉有点大才小用
   3) 欢迎大家补充、拍砖


    
   
Oracle 数据一致

------解决方案--------------------
物化视图、、、
------解决方案--------------------
   但当DA删除DB已有的数据时候,这时候就出现无法保持一致的问题。
--这句话我不是太理解
------解决方案--------------------
楼主,你这2个库 感觉 就是 个主库 和备库 。。。干嘛不直接搭建dg 得了。。。




------解决方案--------------------
用物化视图,刷新组,job一起来处理
------解决方案--------------------
历史数据的查询在百万/天这种级别,感觉最好不要进行整体库查询。
如果查询跨十年的数据,那你需要多好的查询机制才能解决查询速度的问题。

我们采用的方式,定点(如每周,每月)把数据做成统计表,抛弃原始数据。一旦统计表生成,就不再考虑原始数据了。 考虑到上十亿数据的统计结果,哪怕缺失一周的数据,对整体分析不会产生影响的。

------解决方案--------------------
引用:
Quote: 引用:

楼主,你这2个库 感觉 就是 个主库 和备库 。。。干嘛不直接搭建dg 得了。。。
 这不全是主库和备库的关系,B库是大库,收集A C D..等所有这些库的数据(ABCD表结构一样) 


如果都是百万级的数据量,那其实建立DBLINK,写一个通用的数据同步程序(drop...create...),定时调度就可以了。只要不是上亿的数据量,效率应该都可以接受。