我在许多电脑上安装了我的客户端应用程序,每台电脑都通过局域网连接。每个客户端应用程序都使用自己的SQL数据库。我需要同步每台计算机中的数据库,以便每个客户端应用程序都有相同的数据。如何使用VB.net (VS2010,Winforms)实现这一点?
发布于 2011-02-20 22:00:30
一种方法是使用队列表。在表上放置一个insert/update触发器,以将任何更改推入队列。如果插入了表行,然后更新了两次,那么队列中将包含insert、update、update信息。然后,客户端根据上次从队列中拉出的时间从队列中请求更改。队列的优点是负载很小。您可能有一个包含100,000行的表,但您只下载了所需的3或4个编辑。
另一种技术是抓取整个表。对临时表执行大容量插入。然后执行基于集合的update/insert来更新现有行,插入新行。
你想出的任何解决方案都会有800磅的大猩猩在房间里。这就是合并。如果2个用户的提交冲突数据编辑到同一行,那么就有问题了。您可以通过更频繁地同步来减少这种机会。由于只同步自上次以来的新编辑,因此队列表可以更好地经常进行同步。如果你非常非常幸运,你的应用程序的性质将使每个客户端只接触它自己的数据,所以合并不会是一个问题。
您处于LAN环境中。只有一个数据库,所有客户端都可以访问。这是关系数据库应用程序的传统模型,效果非常好。
https://stackoverflow.com/questions/5057142
复制相似问题