如何将一个在线 SQL 数据库与另一个离线数据库同步?
我需要将大型本地 SQL 数据库同步到服务器数据库,反之亦然。两个数据库结构完全相同。我们需要每天早上从在线服务器获取最新数据。本地数据库不断更新,大约每小时服务器数据库需要使用本地数据更新一次。
我想使用 .Net winforms 应用程序来完成此操作。
我认为我可以通过两部分来实现这一目标:
- 创建在线数据库的备份,然后下载它并使用该备份文件恢复本地数据库(因为我们的在线数据库已更新)。
- 然后说一小时后我将检查本地数据库中的新条目并更新/插入在线数据库中的新条目。
但我在这种方法中遇到了一些问题:
当我们下载大型数据库备份文件时,它有几次被损坏。
我的数据库有父/子关系表的主键和外键引用。因此,如果我在在线数据库中生成新行,那么它将在在线数据库中生成新的 ID。那么如何维护引用呢?
我从未处理过这种情况,我不知道实现此目的的不同方法,所以请尽可能地解释一下自己。
非常感谢。
I need to sync a large local SQL database to a server database and vice versa. The two databases structure are exactly the same. We need to get latest data from online server once a day in morning. The local DB is constantly updated and every hour or so the server DB need to be updated with the local data.
I want to do it with a .Net winforms application.
I thought that I can achieve this in two parts as :
- Create a backup of online database, then download it and restore the local database with that backup file (as our online database is updated one).
- then say after an hour I will check for new entries in local database and update/Insert new entries in online database.
But I have some issues in this approach:
When we download large database backup file, several times it's got corrupted.
My database has primary keys and foreign key references for Parent/child relationship tables. So if I generate a new row in online database then it will generate new Id's in online database. So how can I maintain references?
I never worked with this kind of scenario, I don't know the different ways for achieving this so please explain yourself as good as possible.
Thank you very much.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
听起来你最好使用 sql server 复制,而不是自己编写
msdn 链接信息
sounds like you would be better off using sql server replication rather than writing this yourself
links to msdn information
也许您可以尝试一下Microsoft Sync Framework。
Maybe you can give the Microsoft Sync Framework a try.
我发表了一篇关于在线离线数据库同步的文章。在这里您可以找到如何同步多个数据库(相同架构)。应该有一个主数据库,其他数据库将根据它进行更新。你可以试试这个: http://blog.ankitverma.com/2010/03 /onlineoffline-database-synchronization/
I posted an article upon on-line off-line database synchronization. here you can find how to synchronize multiple databases (same schema).there should be one master database and others will be updated according to it. you can try this : http://blog.ankitverma.com/2010/03/onlineoffline-database-synchronization/
您可以使用以下软件之一进行数据库同步:
You can use one of the following software for database synchronization: