Database 如何在局域网中同步不同计算机中的数据库

Database 如何在局域网中同步不同计算机中的数据库,database,vb.net,Database,Vb.net,我在许多计算机上安装了我的客户端应用程序,每台计算机都通过局域网连接。每个客户端应用程序都使用自己的SQL数据库。我需要同步每台计算机中的数据库,以便每个客户端应用程序都具有相同的数据。如何使用VB.net(VS 2010,Winforms)实现这一点?一种方法是使用队列表。在表上放置insert/update触发器,以将任何更改推送到QEUE中。如果插入了表行,然后更新了两次,那么队列中将包含insert、update、update info。然后,客户机根据最后一次从队列中提取数据的时间从队

我在许多计算机上安装了我的客户端应用程序,每台计算机都通过局域网连接。每个客户端应用程序都使用自己的SQL数据库。我需要同步每台计算机中的数据库,以便每个客户端应用程序都具有相同的数据。如何使用VB.net(VS 2010,Winforms)实现这一点?

一种方法是使用队列表。在表上放置insert/update触发器,以将任何更改推送到QEUE中。如果插入了表行,然后更新了两次,那么队列中将包含insert、update、update info。然后,客户机根据最后一次从队列中提取数据的时间从队列中请求更改。队列的优点是负载保持较小。您可能有一个包含100000行的表,但您只下载所需的3或4次编辑

另一个技巧是抓住整张桌子。对临时表执行大容量插入。然后执行基于集合的更新/插入以更新现有行,插入新行

你想出的任何解决方案都会让这只800磅重的大猩猩呆在房间里。这就是合并。如果两个用户向同一行提交冲突的数据编辑,则会出现问题。您可以通过更频繁地同步来减少机会。队列表有助于经常同步,因为您只同步自上次以来的新编辑。如果你非常幸运,你的应用程序的性质将使每个客户端只接触它的“自己的”数据,因此合并不会是一个问题


您处于局域网环境中。只有一个所有客户端都可以访问的数据库。这是关系数据库应用程序的传统模型,运行非常好。

它们各自有本地SQL数据库吗?您是否在某处运行服务器应用程序?他们是否有任何相互沟通的方式或某个中心位置?是的,他们有本地数据库。还有一个服务器应用程序可能可用,也可能不可用。没有数据的中心位置。也许你可以更模糊一点。同步数据?同步模式?我在VS2010下工作,WinformsI不能有一个数据库,因为无法保证服务器始终可用。我无法清楚地理解排队的含义,如果可能,您可以提供一个示例代码或提供指向该示例代码的链接吗?