适用于同步在线和离线数据的方法

时间:2011-04-07 08:19:25

标签: database algorithm data-synchronization

我有两个拥有自己数据库的应用程序。

1。)具有vb.net winforms界面的桌面应用程序,在离线企业网络中运行并将数据存储在中央数据库中[SQL Server]
**所有数据录入和其他办公室操作都在中央数据库中执行并存储

2.。)第二个应用程序已经构建在php上。它有html页面并在网络环境中作为网站运行。它将所有数据存储在mysql数据库中 **此应用程序仅由注册会员访问,并且通过第一次申请处理的数据的不同报告便于使用。

现在我必须在在线和离线数据库服务器之间同步数据。我打算跟进:
1.)编写一个小程序,将SQL Server [离线服务器]的所有数据导出为CVS格式的文件 2.)登录到实时服务器的admin部分 3.)将导出的cvs文件上传到服务器 4.)将数据从cvs文件导入mysql数据库。

我计划的方法是好还是可以调整以表现良好。除了更改应用程序之外,我还要感谢数据同步的其他好方法。使用mysql数据库的其他一些网络应用程序

3 个答案:

答案 0 :(得分:1)

您要求的实际上听起来并不像双向同步(或从SQL Server到MySQL以及从MySQL到SQL Server的数据移动)这是一件好事,因为它真的为您简化了一些事情。虽然我怀疑你使用CSV的方法(我认为你会使用像BCP这样的东西)可以工作,但其中一个问题是你每次运行这个过程都要移动所有数据而你基本上都要覆盖每次都是整个MySQL数据库。这显然有些低效。更不用说在那段时间内MySQL数据库不会处于可用状态。

一种替代方案(假设您拥有SQL Server 2008或更高版本)将考虑使用此技术以及集成更改跟踪或集成更改捕获。这是SQL Server中的一项功能,允许您确定自某个时间点以来已更改的数据。您可以做的是创建一个流程,该流程仅提取自上次检查CSV文件后的更改,然后将这些更改应用于MySQL。如果你这样做,也不要忘记也应用删除。

答案 1 :(得分:1)

我认为没有现成的解决方案可以在没有自定义的情况下使用 - 但MS Sync框架(http://msdn.microsoft.com/en-us/sync/default)听起来关。

你可能需要编写一个MySQL的提供程序来实现它 - 这可能比从头开始编写整个数据同步逻辑要少。 Voclare对于您编写自己的同步机制可能遇到的挑战是对的......

答案 2 :(得分:0)

将SQL Server Integration Service视为一个很好的替代方案。