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

问题描述:

我有两个拥有自己的数据库的应用程序。适合的方法用于同步在线和离线数据

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

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

现在我必须同步在线和离线数据库服务器之间的数据。我正在计划如下:
1.)编写一个小程序,将SQL Server [离线服务器]的所有数据导出为CVS格式的文件。
2.)登录到活动服务器的管理部分。
3.)将导出的CVS文件上传到服务器。
4.)将数据从cvs文件导入到mysql数据库。

是我计划好的方法或可以tunned执行好。除了更改应用程序之外,我还会赞赏其他用于数据同步的好方法。网络应用到其他使用mysql数据库

这是你所要求的实际上并没有听起来双向同步(或数据两种方式从SQL Server到MySQL,从MySQL到SQL Server的运动)是一件好事,因为它真的为你简化了一些事情。尽管我怀疑你使用CSV的方法(我假设你会使用类似BCP的方法来完成此操作),但其中一个问题是,每次运行该过程时都要移动所有数据,而且基本上是覆盖整个MySQL分贝每次。这显然效率不高。更不用说在那个时候MySQL数据库不会处于可用状态。

一种替代方法(假设你的SQL Server 2008或更高版本)将考虑使用这种技术,集成了更改跟踪或整体变更捕获一起。这是SQL Server中的一项功能,允许您确定自某个特定时间点以来发生更改的数据。你可以做的就是创建一个过程,它只是提取自上次检查CSV文件以来的更改,然后将这些更改应用到MySQL。如果你这样做,不要忘记也应用删除。

我不认为有一个关闭你想,你可以无需定制使用什么现成的解决方案 - 但MS同步框架(http://msdn.microsoft.com/en-us/sync/default)听起来很近。

你可能需要编写一个提供商的MySQL使它去 - 这可能比从头开始编写整个数据同步逻辑工作量少。 Voclare是看错你可以用编写自己的同步机制面临的挑战...

不要看看SQL Server集成服务是一个很好的替代。