2012-02-23 113 views
0

我们一直在开发一个将与网站集成的.NET桌面应用程序,它们都使用MySQL。每个软件的客户都有一个网站。我们需要将客户的数据库与运行在我们服务器上的通讯数据库同步。我们将在每个客户的服务器上运行一个数据库。这些信息将显示在客户的网站上。.NET应用程序Mysql远程数据库同步

同步必须在短时间内完成。我们不想有一个过时的网站。

我们认为要编写代码来进行此同步。实现稳定同步似乎是一项艰巨的任务。客户的数据库会很大,在短时间内发送似乎是不切实际的。

然后我们发现数据库复制。大!一种平滑的方式来同步数据库。我们不需要对此解决方案进行硬编码!我们客户的数据库将成为主人,我们的服务器将成为奴隶。我们需要在同一个MySQL服务器上有多个从站。 MySQL不允许它。

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

最后,我们认为打开端口并拒绝非防火墙客户访问。

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

回答

1

我有一个类似的程序,我使用的是CQL CE数据库/ MS SQL。我所做的是在主服务器上,我需要将更新发送到客户端数据库的每个表中放置了一个更新日期字段。客户端数据库将拥有一个表,其中包含最后一次更新数据库的日期。因此,当服务器上的某些更改被更新到当前日期时,客户端程序将根据Web服务检查上次更新日期,以确定是否需要执行任何更新。

0

我以前想过这个。

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

我可以想到在不打开端口等的情况下这样做的最佳方式是使用长轮询或HTML 5套接字来仅提供请求的数据。只要您的用户不希望经常查看所有数据,这将提供一个合理的解决方案。

相关问题