.NET 应用程序 Mysql 远程数据库同步

Posted

技术标签:

【中文标题】.NET 应用程序 Mysql 远程数据库同步【英文标题】:.NET Application Mysql remote databases sync 【发布时间】:2012-02-23 15:11:52 【问题描述】:

我们一直在开发一个 .NET 桌面应用程序,该应用程序将与网站集成,两者都使用 mysql。每个软件的客户都会有一个网站。我们需要将客户的数据库与我们服务器中运行的对应数据库同步。我们将为每位客户在我们的服务器中运行一个数据库。这些信息将显示在客户的网站上。

必须在短时间内进行同步。我们不想拥有过时的网站。

我们曾考虑编写代码来实现这种同步。实现稳定的同步似乎是一项艰巨的任务。客户的数据库会很大,短时间内发送似乎不太现实。

然后我们发现了数据库复制。伟大的!一种平滑的数据库同步方式。我们不需要对这个解决方案进行硬编码!我们客户的数据库将是主数据库,而我们服务器的数据库将是从属数据库。我们需要在同一个 MySQL 服务器中有多个从属服务器。 MySQL 不允许。

我们可以运行多个 MySQL 实例,每个客户一个实例。但是我们需要为每个实例打开一个端口,这听起来很不安全。

最后,我们考虑使用防火墙打开端口并拒绝非客户访问。

你会如何解决这个问题?我们想听听您的意见。 谢谢。

【问题讨论】:

【参考方案1】:

我有一个类似的程序,我正在使用 CQL CE 数据库/MS SQL。我所做的是在主服务器上,我需要向客户端数据库发送更新的每个表都放置一个更新日期字段。客户端数据库将有一个表,其中包含上次更新其数据库的日期。因此,当服务器上发生某些变化时,更新日期会被设置为当前日期,然后客户端程序将根据 Web 服务检查上次更新日期,以查看它是否需要进行任何更新。

【讨论】:

【参考方案2】:

我过去曾考虑过这一点。

我认为最好的选择是通过直接从客户端数据库提供 Web 上的数据来避免复制过多的数据存储。

在不打开端口等情况下,我能想到的最好方法是使用长轮询或 html 5 套接字仅提供请求的数据。只要您的用户不希望经常查看所有数据,这将提供一个公平的解决方案。

【讨论】:

以上是关于.NET 应用程序 Mysql 远程数据库同步的主要内容,如果未能解决你的问题,请参考以下文章

将 SQLite/Android 数据库表同步到远程 MySQL 数据库表(通过 PHP)

使用 phpMyAdmin 同步 MySQL 远程和本地数据库

在android中将SQLite数据库与远程mysql数据同步

本地MySQL数据库怎么与远程MySQL数据库同步

使用 Mysql Workbench 将两个 db 从本地同步到远程

Capistrano:将本地mysql数据库同步到远程mysql数据库