0

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

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

2.) 第二个应用程序是基于 php 构建的。它具有 html 页面并在在线环境中作为网站运行。它将所有数据存储在mysql数据库中。
**此应用程序仅供注册会员访问,他们可以通过第一个应用程序处理的数据的不同报告获得便利。

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

我计划的方法是好还是可以调整为好。除了更改应用程序之外,我还将感谢其他不错的数据同步方式..即。网络应用程序到其他一些使用 mysql 数据库的应用程序

4

3 回答 3

1

我认为没有现成的解决方案可以满足您的需求,无需自定义即可使用 - 但 MS Sync 框架 (http://msdn.microsoft.com/en-us/sync/default) 听起来很接近。

您可能需要为 MySQL 编写一个提供程序以使其运行 - 这可能比从头开始编写整个数据同步逻辑的工作量更少。Voclare 对于编写自己的同步机制可能面临的挑战是正确的......

于 2011-04-07T22:13:06.280 回答
1

您所要求的实际上听起来不像双向同步(或从 SQL Server 到 MySQL 和从 MySQL 到 SQL Server 的双向数据移动),这是一件好事,因为它确实为您简化了事情。尽管我怀疑您使用 CSV 的方法(我假设您会使用 BCP 之类的方法来执行此操作)会起作用,但问题之一是您每次运行该过程时都在移动所有数据并且您基本上是在覆盖每次都是整个 MySQL 数据库。这显然有些低效。更不用说在那段时间 MySQL 数据库不会处于可用状态。

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

于 2011-04-07T22:03:52.187 回答
0

将 SQL Server 集成服务视为一个很好的替代方案。

于 2011-07-19T18:26:17.463 回答