如何将一个在线sql数据库与另一个离线数据库同步?

问题描述:

我需要将大型本地SQL数据库同步到服务器数据库,反之亦然。这两个数据库结构完全相同。我们需要每天早上从网上服务器获取最新数据。本地数据库不断更新,每个小时左右,服务器数据库都需要使用本地数据进行更新。如何将一个在线sql数据库与另一个离线数据库同步?

我想用.Net winforms应用程序来做到这一点。

我认为我可以在两个部分实现这一目标为:

  1. 创建在线数据库的备份,然后将其下载并恢复与备份文件的本地数据库(如我们的在线更新数据库之一) 。
  2. 然后说一个小时后我会检查本地数据库中的新条目并更新/插入在线数据库中的新条目。

但是我对这种做法的一些问题:

  1. 当我们下载大型数据库的备份文件,几次它被损坏了。

  2. 我的数据库具有父/子关系表的主键和外键引用。所以如果我在在线数据库中生成一个新行,那么它会在在线数据库中生成新的Id。那么我如何保持参考?

我从来没有与这种情况下工作,我不知道实现这个不同的方式,所以请尽可能好地解释自己。

非常感谢。

听起来像是你将使用SQL Server的复制,而不是该自己写

links to msdn information

也许你可以给Microsoft Sync Framework一个尝试会更好。

我发布了一篇关于在线脱机数据库同步的文章。在这里您可以找到如何同步多个数据库(相同的模式)。应该有一个主数据库,其他人将根据它进行更新。你可以试试这个:http://blog.ankitverma.com/2010/03/onlineoffline-database-synchronization/

您可以使用以下软件数据库同步的一个:

  1. SQL比较:http://www.red-gate.com/products/sql-development/sql-compare/
  2. 的Sql三角洲:http://www.sqldelta.com