日期:2014-05-16  浏览次数:20448 次

Java写不同数据库之间数据迁移探讨

??? 最近正在搞用java实现,不同数据库之间数据互相进行迁移,上网查了很多资料,就是没有找到更好方式进行解决,搞得我一头雾水,相信JE很多牛人都有不同独特见解,希望能够帮忙提出些解决方案.

??? 比如:Sql Server数据库------->Oracle数据库

??? 需求:1.Sql server 里面一张表数据结构和数据一起迁移到Oracle数据库对应迁移过来哪张表结构和数据.???

???????????2.假如现在我用Sql server 表里面一个字段数据,迁移到Oracle数据库对应表增加字段(有增字段,肯定有少字段)等等一系列需求...

?????????? 我个人观点:Sql server 向 Oracle 迁移表或其它,有太多要考虑地方.

?????????? 1.他们之间数据类型(exp:日期类型,二进制类型....等等!).

???????????2.在Sql server 表的Id是增动增长型,而在Oracle表中ID,是建立一个sequence来增长,假如迁移该如何解决?

?????????? Oracle 向 Sql server迁移数据改怎么办?太多思考问题....貌似这个有点难搞?现在我已经把不同数据库动态连接之间切换写好了...

?????????? 在此等候JE牛给点宝贵意见(特别是异常大哥)...

?

1 楼 repsihWDX 2009-06-26  
写master以前先记一个id在日志表上。

用个定时程序定时行复制数据到分库。

需要延时小的话需要有个更新以后发通知到同步服务器的机制就行了
2 楼 xiaojiit 2009-06-26  
同样困扰,
等待解决。
3 楼 myprincejava 2009-06-26  
repsihWDX 写道
写master以前先记一个id在日志表上。

用个定时程序定时行复制数据到分库。

需要延时小的话需要有个更新以后发通知到同步服务器的机制就行了

这样代码量复杂?用定时到数据每一行?标记ID?然后通过seq?开始自动增加...
4 楼 repsihWDX 2009-06-26  
myprincejava 写道
repsihWDX 写道
写master以前先记一个id在日志表上。

用个定时程序定时行复制数据到分库。

需要延时小的话需要有个更新以后发通知到同步服务器的机制就行了

这样代码量复杂?用定时到数据每一行?标记ID?然后通过seq?开始自动增加...


既然定位是“迁移”那肯定是数据一致的迁移了,ID肯定跟主库id走,添加字段的话有规律么?减少字段的话配置一下就好了。

写一条写sql扔俩数据库上去这个事情有风险。

肯定是保证写一个地方成功以后去复制是最安全的。复制的方法不少,那就要具体问题具体分析了

类型的话反正用getObject setObject去写就行了。类型让数据库自己去判断吧。

它的实现不会超过jdbc规范要求的那些类型的。2进制的东西要小心,最好测试过。
5 楼 zhaojuan8 2009-06-26  
mysql 主 从 嘿嘿
6 楼 zhaojuan8 2009-06-26  
要求实时的同步吗??
7 楼 R_miyagi 2009-09-01  
单纯的只考虑到个数据库之间的数据迁移或备份,不考虑迁移之前目标数据库是干净的到是经常很容易做到,就是简单的依据目标数据库的表和字段,从源数据库中抓取数据并转换类型,但考虑到在目标数据库上建立和源数据库同等的数据结构至今还没有解决,主要还是在创建是考虑和碰到的问题太多了.(我通常都是先执行事先准备好数据库的建表语句),提议一同讨论把这个问题解决...
8 楼 jack_jbs 2012-06-29  
事过两年,不知道楼主是否在用这个账户。 如果看到俾人的信息,希望能给小弟传授点经验,本人Q:270860547,邮箱:jack_jbs@163.com