Oracle 关于数据完整性的讨论
大家好:
最近开发一个项目,偏向数据收集类的,数据量大概在百万/天,可以理解为表对表的拷贝。
举个例子:DA.Table1 到 DB.Table1,A、B表结构一样,正常增量情况下,两库的数据会一致。
但当DA删除DB已有的数据时候,这时候就出现无法保持一致的问题。
想到一些办法,但都有利由有弊
1)采用触发器,在DA每张表里创建删除触发器,记录删除的数据,再通过程序去将DB里面相同的数据删除。这种是最直接但可靠性比较低
2) 采用日志归档或者闪回规则,这相对来说比价可靠,但感觉有点大才小用
3) 欢迎大家补充、拍砖
------解决方案--------------------物化视图、、、
------解决方案-------------------- 但当DA删除DB已有的数据时候,这时候就出现无法保持一致的问题。
--这句话我不是太理解
------解决方案--------------------楼主,你这2个库 感觉 就是 个主库 和备库 。。。干嘛不直接搭建dg 得了。。。
------解决方案--------------------用物化视图,刷新组,job一起来处理
------解决方案--------------------历史数据的查询在百万/天这种级别,感觉最好不要进行整体库查询。
如果查询跨十年的数据,那你需要多好的查询机制才能解决查询速度的问题。
我们采用的方式,定点(如每周,每月)把数据做成统计表,抛弃原始数据。一旦统计表生成,就不再考虑原始数据了。 考虑到上十亿数据的统计结果,哪怕缺失一周的数据,对整体分析不会产生影响的。
------解决方案--------------------
如果都是百万级的数据量,那其实建立DBLINK,写一个通用的数据同步程序(drop...create...),定时调度就可以了。只要不是上亿的数据量,效率应该都可以接受。