我有一个 Web应用程序,它为我的客户提供了一些信息。我有另一个版本( windows )exactly work same as web application
。
这是因为Web连接可能会丢失几个小时,此时用户将使用该应用程序。
我想知道如何同步这些SQL Server
数据库。
请注意,网络应用程序正在使用3 different cities
和all of them have a windows based application too
。我该怎么办?
NoteL windows verision正是安装在3个不同城市的本地Web服务器上的Web应用程序,用户可以通过LAN
访问它们。
答案 0 :(得分:3)
来自/到网络/窗口的数据中的所有更新都来自Windows应用程序。但问题是,当没有互联网连接时,Windows应用程序将运行。
因此,您必须使用Windows服务,该服务将调用Web服务以进行本地和远程数据库更新。窗口可以每x分钟唤醒一次,并更新远程和本地数据库。
网络服务将有两种方法:
GetData(DateTime getRecordsFromThisDate) - Windows service should call this on regular intervals and update the local database.
UploadData(dataRows/collection) - Windows service should call this on regular intervals and update the remote database.
数据库中的每条记录都有一个时间戳。对于本地更新,获取最大时间戳并将其作为参数发送到GetData()。 Web服务将返回在此时间之后创建的记录。
对于上传数据,您必须存储上次运行成功上传操作的时间。在此时间之后获取记录(插入和更新)并将它们发送到UploadData()。
答案 1 :(得分:1)
您的选择可能是使用数据库备份进行同步(可能非常慢且不切实际)。之后,您必须使用ETL。选择你最喜欢的工具。您可以使用sql server CDC,或者我建议使用更改跟踪来识别您的更改并加载这些更改。然后使用merge来同步您的更改。当然,这些解决方案将要求您设置链接服务器或使用第三方临时保存dml更改。
http://technet.microsoft.com/en-us/library/bb510625.aspx
http://msdn.microsoft.com/en-us/library/cc305322.aspx
我以为我会添加一个非微软解决方案http://www.red-gate.com/products/sql-development/sql-data-compare/它不是免费的,而是完全符合您的需要。