web-services - 将 SQL Server 数据库中的更改与其远程客户端数据库同步

标签 web-services sql-server-2005 database-replication

将 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/

相关文章:

java - Jax Ws 与 PHP 客户端始终发送 Null parm

CentOS 上的 PostgreSQL 9.6 Master,Ubuntu 上的副本?

SQL 2005 : Select top N, 按 ID 与联接进行分组

sql - 子查询内的 SELECT INTO

sql-server-2005 - 如何获取sql server中最后插入的行

mysql - 在 MySQL Master 到 Master 复制中,如果我在一个 MySQL 服务器上更改 MySQL root 登录密码,其他 MySQL 服务器上会自动更改吗?

mysql - MySQL复制

web-services - 如何在 powershell 中创建由 webservice 工厂函数定义的对象?

ios - 警报 View 需要很长时间才能弹出

java - 为http服务生成java类