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

时间:2011-01-28 11:01:30

标签: c# sql database synchronization mirroring

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

我想用.Net winforms应用程序来做。

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

  1. 创建在线数据库的备份,然后下载并使用该备份文件恢复本地数据库(因为我们的在线数据库已更新)。
  2. 然后说一小时后我将检查本地数据库中的新条目并更新/在在线数据库中插入新条目。
  3. 但我在这种方法中遇到了一些问题:

    1. 当我们下载大型数据库备份文件时,它已多次被破坏。

    2. 我的数据库具有父/子关系表的主键和外键引用。因此,如果我在在线数据库中生成一个新行,那么它将在在线数据库中生成新的Id。那么我该如何维护参考文献呢?

    3. 我从未使用过这种情况,我不知道实现这一目标的不同方法,所以请尽可能好地解释自己。

      非常感谢。

4 个答案:

答案 0 :(得分:2)

听起来你最好不要使用sql server复制而不是自己编写

links to msdn information

答案 1 :(得分:2)

也许你可以试试Microsoft Sync Framework

答案 2 :(得分:0)

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

答案 3 :(得分:0)

您可以使用以下软件之一进行数据库同步:

  1. Sql Compare:http://www.red-gate.com/products/sql-development/sql-compare/
  2. Sql Delta:http://www.sqldelta.com