要做一个数据库迁移工具,求教些问题

香辣牛肉面 2011-11-15 08:40:38
加精
把一个数据库的源表的某个字段映射到另一个数据库的目标表的某个字段,实现目标表的数据与源表同步,请问有什么方法可以来判断源表的哪些数据已经被同步到目标表,在下次同步的时候直接跳过已经同步的数据咯
...全文
1039 78 打赏 收藏 转发到动态 举报
写回复
用AI写文章
78 条回复
切换为时间正序
请发表友善的回复…
发表回复
「已注销」 2012-01-19
  • 打赏
  • 举报
回复
多说一句,独立完成所指是仅在数据库这个层次上单独完成。与业务、程序等无关。

所以说限制多多。如果你要评估这样的需求,那么就把所有的限定条件提出来,好让专精于某种数据库应用之类的人给你确切的解答,以提供你方案是否可行的依据。然后做出评估。

太笼统的问题没有意义。
「已注销」 2012-01-19
  • 打赏
  • 举报
回复
1 是同步还是迁移。
2 如果是同步是实时同步还是准实时同步
3 如果是实时同步那它一定不是数据库迁移
4 无论什么同步,要检查过往是否存在未同步数据并再次同步,这几乎都是不可能的。除非确切的如楼主所说,仅需要同步一个指定的字段并且是准实时同步。这样的同步肯定不能做成实时同步(至少要用事务,可能还有分布式数据仓库,并且引入了危险)。

楼主可能说的是sql server中的应用?实时同步的限制很多。想要用它实现这么天方夜谭的想法很难。
类似这样的需求基本没有什么数据库能独立完成(如果要保证性能的话)。
zhaoymo 2011-12-20
  • 打赏
  • 举报
回复
这个、这个,难哪
hualiang_ll 2011-12-08
  • 打赏
  • 举报
回复
[Quote=引用 69 楼 ycagri 的回复:]
根据我的经验,我从事过三种同步的方式

1、作业加存储过程的方式,需要将另一台服务器注册过来,以免数据库远程连接的过程
直接采用的是insert into ......select from 的方式,作业同步的时候,会先取目标表中最大的时间,然后将源表中大于目标表最大时间的记录都插入过来

2、触发器加程序方式,新建一个跟同步表结构相同的表,加一个字段,类型字段,用I表示插入,U表示更新……
[/Quote]

这个朋友的方法好.
KentYung 2011-11-28
  • 打赏
  • 举报
回复
学习中,希望看到高手的解答
jfjjh 2011-11-25
  • 打赏
  • 举报
回复
不是很清楚的个【
ycagri 2011-11-24
  • 打赏
  • 举报
回复
没能尝试过完全意义上的同步,那应该会进行全表比较,否则不可能做到真正意义上的同步
ycagri 2011-11-24
  • 打赏
  • 举报
回复
根据我的经验,我从事过三种同步的方式

1、作业加存储过程的方式,需要将另一台服务器注册过来,以免数据库远程连接的过程
直接采用的是insert into ......select from 的方式,作业同步的时候,会先取目标表中最大的时间,然后将源表中大于目标表最大时间的记录都插入过来

2、触发器加程序方式,新建一个跟同步表结构相同的表,加一个字段,类型字段,用I表示插入,U表示更新,D表示删除,在源表上建Insert、update、Delete触发器,将源表的每一次改变都触发到这张新表里,转发程序会定时扫描这张表,如果有记录将记录转发走,同时清空此表。目标接收程序收到数据后,会根据类型字段来处理相应的数据,是插入还是更新还是删除。

3、纯程序方式,先设置一个同步数据的时间起点,将大于此时间点的数据都转发走,同时将同步时间设置为当前的时间,转发程序定期的的执行,如果有大于转发时间的记录数据就转发
you52034 2011-11-23
  • 打赏
  • 举报
回复
太深奥了,有点看不懂。
caoatcao 2011-11-23
  • 打赏
  • 举报
回复
用vc里的_ConnectingPtr只能指针连接ADO数据库 很简单的 我上周刚做了这个工作
tianshanxueyu 2011-11-22
  • 打赏
  • 举报
回复
可不可以借助一些数据抽取或迁移的软件,并定时运行源数据到目标数据表的迁移工作,并在报错的记录中查看相应的迁移情况
zhengyanghui 2011-11-22
  • 打赏
  • 举报
回复
这个只能具体问题具体对待了
如果有顺序的ID,或者有更新时间之类的字段就可以直接用
如果没规律可能就没办法了
panzongpan 2011-11-21
  • 打赏
  • 举报
回复
等高手。。
maxchenwei 2011-11-21
  • 打赏
  • 举报
回复
太深奥了,有点看不懂。
hualiang_ll 2011-11-19
  • 打赏
  • 举报
回复
如果你用SQL Server数据库的话,里面已经带这个功能了,你可以用自带的这个功能来实现自己的需求。
lazygirlgo 2011-11-19
  • 打赏
  • 举报
回复
根据关键字,做同步记录试试应该可以的。。我同学做过相关的。
搞什么哦 2011-11-19
  • 打赏
  • 举报
回复
1、在源表与目标表中增加一张增量记录表,源表变化时将变化的数据在源表中的主键和变化动作记到增量表中;
2、目标表定时处理增量表,根据增量中记录的动作和主键将数据同步到目标表中。
3、处理完的数据清除增量表,这样每次只需关心增量记录即可。
4、源表中可以采用出发器来记录增量,否则只能在业务逻辑中实现。
stszd604 2011-11-18
  • 打赏
  • 举报
回复
加时间戳?
lyh7736362 2011-11-18
  • 打赏
  • 举报
回复
把一个数据库的源表的某个字段映射到另一个数据库的目标表的某个字段,实现目标表的数据与源表同步,请问有什么方法可以来判断源表的哪些数据已经被同步到目标表,在下次同步的时候直接跳过已经同步的数据咯
wjlazio 2011-11-18
  • 打赏
  • 举报
回复
看看了,比较难。。。。
加载更多回复(25)

2,209

社区成员

发帖
与我相关
我的任务
社区描述
其他数据库开发 其他数据库
社区管理员
  • 其他数据库社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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