两个库之间的增量更新问题。

hualong2000 2005-10-31 10:56:57
A和B分别是两台机器上的oracle数据库表,结构相同。
其中B表中可能出现更新、删除、增加、定期备份(后清空)等操作,并且每天都会有若干操作发生。
请问,如何将B表增量更新到A表中去,保证A表中保存B表中的历史数据,
但不能包含B中已经删除的记录,且更新、增加记录等操作要体现在A表中。
请大虾们帮忙看看了
...全文
190 12 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
usaspy 2005-11-07
  • 打赏
  • 举报
回复
感觉还是用触发器比较好
hualong2000 2005-11-04
  • 打赏
  • 举报
回复
“增量刷新用物化视图日志来发送主表已经修改的数据行到物化视图中.”

物化视图我们做过,但已修改的数据并不包含A表中已删除的数据行的,还是无法判别那些是删除行。
hualong2000 2005-11-04
  • 打赏
  • 举报
回复
lwty(藏浪) ,你说的前两步都做过的,不知道增量刷新组和增量刷新怎么做?
hualong2000 2005-11-04
  • 打赏
  • 举报
回复
按系统时间好像不能解决B中删除记录的情况,也就是这个问题我一直没有解决好。
zzwind5 2005-11-02
  • 打赏
  • 举报
回复
如果表中有字段记录系统时间的话
可以建立一个定时脚本按月或按天把这段时间的增量数据导过去
lwty 2005-11-02
  • 打赏
  • 举报
回复
1,在A库中建立所有需要更新的对象的快照日志
2,在B库建立连接A库的db link
3,建立刷新组做增量刷新
hualong2000 2005-11-02
  • 打赏
  • 举报
回复
目前我也是这么考虑的,好像也有些问题。
1、但像B表这样的表不止一个,今后随着业务发展,会越来越多,如果每个都写程序的话,工作量比较大。
2、大多表都是大小上G的,建立临时表可能会影响速度。
我先用这个方法了试一下了,谢谢 sasacat
sasacat 2005-11-01
  • 打赏
  • 举报
回复
那就建一个job。每一段时间把这个B表数据全取下来,先放在一个临时表里。然后再自己写个程序慢慢分析哪些数据变了,哪些数据是新增的
hualong2000 2005-11-01
  • 打赏
  • 举报
回复
是这样的,B表不是我们控制的,是我们合作伙伴提供给我们的数据源,只有读权限,B表由于是在线系统,保存数据有时间限,我门这边的分析系统需要保留B表的历史数据,但不能包含B中已删除的记录、同时还要考虑B表备份清空的情况。所以才有这个需求。
bobfang 2005-10-31
  • 打赏
  • 举报
回复
你如果只有select权是没有办法把数据写入的!除非你找到了oracle的安全漏洞。
hualong2000 2005-10-31
  • 打赏
  • 举报
回复
忘了说了,我对B表没有建立触发器的权限,只有select的权限。不知道能不能解决。
谢谢各位了
sasacat 2005-10-31
  • 打赏
  • 举报
回复
用触发器吧

17,140

社区成员

发帖
与我相关
我的任务
社区描述
Oracle开发相关技术讨论
社区管理员
  • 开发
  • Lucifer三思而后行
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧