将 SQL Server 数据库中的更改与其远程客户端数据库同步
将 SQL Server 数据库与其远程客户端数据库同步的最佳方法是什么? SQL Server 中提供 Web 服务/任何其他内置功能吗?
应用程序详细信息:- 使用 SQL Server 2005 的 Wpf 桌面。
该场景是具有库存管理数据库的客户主办公室。在客户端的远程网点中实施相同的数据库结构。新库存正在添加到总部数据库中。每当有新行添加到总部数据库时,需要通知所有远程客户端SQL Server 数据库。每当远程客户端发生更改时,需要将更改发送回总部数据库。
提前致谢。
Which is the best way to synchronize a SQL Server database with its remote client databases? Web services/any other built-in features available in SQL Server?
Application details:- Wpf desktop with SQL Server 2005.
The scenario is client’s main office having stock management database. Same database structure implemented in client’s remote outlets. New stocks are adding in main office database. Whenever a new row is added to head-office database, need to inform all remote client SQL Server databases. And whenever a change happens in remote client outlet, need to send back the changes to main office database.
Thanks in advance.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
经过大量研究,我最终得到以下结果
1. Sql Server 复制< br>
2. SymmetricDS
3. Microsoft 同步框架
4. 定制WCF服务。(示例)
我选择定制 WCF 服务来同步数据库。这里提到了所采取的步骤。
1. 创建索引表。该表保存了客户端的交易历史和签名。
2. 创建一个服务层(类库),它接收并返回表行作为无状态 DTO 对象。该服务层引用负责与数据库通信的数据访问层。
该服务层&数据访问层由WCF服务和Windows服务引用。
3. 创建一个WCF服务并将其托管在Web服务器的IIS中,该服务提供:
一个)。下载(DTOClass dto)
b).上传(DTOClass dto)服务合同。
4. 创建一项 Windows 服务并将其部署在多个客户端位置。此服务使用 Web 服务器 IIS 中托管的 WCF 服务。
客户端位置的 Windows 服务以特定的时间间隔与 WCF 服务进行通信,如果主服务器数据库中有新的更新可用(此信息在 IndexTables 中可用),Windows 服务将下载更新(使用 Download(DTOClass dto) 合约)并更新本地数据库。
同样,如果本地数据库发生任何更改,Windows 服务会将更改移交给 WCF 服务(使用 Upload(DTOClass dto) 合约)。 WCF 服务然后更新主数据库。
由于这两种服务都在本地访问数据库服务器,因此这会带来更好的性能。
After a lot of research I ended up with followings
1. Sql Server Replication
2. SymmetricDS
3. Microsoft Sync Framework
4. Customized WCF service.(An Example)
I chose customized WCF service for synchronizing DBs. The steps adopted are mentioned here.
1. Created an Index Table. This table holds the transaction history and signature of client.
2. Created a service layer (class library) which receives and returns table rows as stateless DTO objects. This service layer referencing a Data Access Layer which is responsible for communicating with database.
This service layer & Data Access Layer are referenced by WCF service and windows service.
3. Created one WCF service and hosted it in IIS of web server, This service offers:
a). Download(DTOClass dto)
b). Upload(DTOClass dto) service contracts.
4. Created one Windows service and deployed it in multiple client locations. This service consumes the WCF service hosted in Webserver IIS.
Windows services from client location communicate with WCF service at specific intervals, if a new update available in main server database(this information available in IndexTables), windows service downloads the update (using Download(DTOClass dto) contract) and update local database.
Likewise, if any changes happen in local database, windows service handover the changes to WCF service(using Upload(DTOClass dto) contract). WCF service then update master database.
Since both services accessing Database servers locally, this result in better performance.