将 SQL Server 数据库与其远程客户端数据库同步的最佳方法是什么? SQL Server 中提供 Web 服务/任何其他内置功能吗?
应用程序详细信息:- 使用 SQL Server 2005 的 Wpf 桌面。
该场景是客户的主要办公室,拥有库存管理数据库。在客户端的远程网点中实现相同的数据库结构。新库存正在添加到总部数据库中。每当有新行添加到总部数据库时,需要通知所有远程客户端SQL Server 数据库。并且每当远程客户端导出发生更改时,需要将更改发送回总部数据库。
提前致谢。
最佳答案
经过大量研究,我最终得到以下结果
1.Sql Server Replication
2.SymmetricDS
3.Microsoft Sync Framework
4.定制WCF服务。 (An Example)
我选择定制 WCF 服务来同步数据库。这里提到了所采取的步骤。
1. 创建索引表。该表保存了客户端的交易历史和签名。
2. 创建一个服务层(类库),它接收并返回表行作为无状态 DTO 对象。该服务层引用负责与数据库通信的数据访问层。
该服务层和数据访问层被WCF服务和Windows服务引用。
3. 创建一个WCF服务并将其托管在Web服务器的IIS中,该服务提供:
A)。下载(DTOClass dto)
b).上传(DTOClass dto)服务契约(Contract)。
4. 创建一项 Windows 服务并将其部署在多个客户端位置。此服务使用 Web 服务器 IIS 中托管的 WCF 服务。
客户端位置的 Windows 服务以特定的时间间隔与 WCF 服务进行通信,如果主服务器数据库中有新的更新可用(此信息在 IndexTables 中可用),Windows 服务将下载更新(使用 Download(DTOClass dto) 合约)并更新本地数据库。
同样,如果本地数据库发生任何更改,Windows 服务会将更改移交给 WCF 服务(使用 Upload(DTOClass dto) 合约)。 WCF服务然后更新主数据库。
由于这两种服务都在本地访问数据库服务器,因此可以获得更好的性能。
关于web-services - 将 SQL Server 数据库中的更改与其远程客户端数据库同步,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7799092/