可以通过异步消息传递系统完成有效的数据库复制吗?

时间:2013-01-07 19:57:23

标签: jms messaging database-replication

鉴于预生产的oracle数据库和生产oracle数据库,如果需要将大约300K记录从前者转移到后者,那么使用消息系统(如ESB / JMS / TIBCO)是不是一个好的选择? / p>

3 个答案:

答案 0 :(得分:1)

我不了解Oracle,但如果我尝试使用SQL Server异步复制数据,我会使用自己的内部工具来完成它。我认为Oracle有类似的工具来运行作业以在两个Oracle数据库之间进行复制。

但是,我确实有很多使用ESM(Mule)和ActiveMQ来跨数据库技术复制数据的经验。具体来说,我已经使用Mule和ActiveMQ完成了SQL Server-> Mongo和MySQL-> Mongo。

到目前为止,我发现Mule是一个很棒的解决方案 - 尤其是与ActiveMQ相结合。我已经能够在大约20分钟内将大约400k Wordpress博客帖子(从MySQL)复制到Mongo。要从CMS系统传输100k文章,我们能够在大约30分钟内完成。

我认为因为你提到的而且ESB和消息传递我会权衡。如果积分点是异质的,我会走那条路。如果你沿着这条路走下去,骡子很棒。

答案 1 :(得分:0)

如果您尝试将数据从旧数据库移动到新数据库而不是异步执行,可能更简单的方法是sql注入。假设您的旧数据库允许您“导出”您的数据库,当您导出它时,您将下载一个sql文件。然后你可以在像记事本这样的程序中打开那个sql文件,并在新数据库的sql执行器中复制粘贴该代码,它将重新创建所有表并用旧数据填充它们。

答案 2 :(得分:0)

实际上,使用数据库工具将是在数据库之间复制数据的推荐方法。

使用消息传递时,无法保证数据将以与发送时相同的顺序传输并保证表之间的关系,从而可能导致复制错误,除非在JMS接收器端建立某种机制保持序列。但这看起来很像开销。