我有一个C#Windows窗体应用程序(在Visual Studio 2013中编写),我在SQL Server(对于主用户)和SQL Server Express(对于客户端)中都有相同的数据库架构。我的数据库大小约为每个客户端2 GB。
我希望在一天内或需要时同步一次这些数据库。在SQL Server 2008中,我们使用了RMO,但SQL Server 2012已弃用该API。
我尝试使用Merge Replication using T-SQL并且能够创建发布,添加文章到发布,创建订阅者以及能够将订阅者注册到发布但数据未同步。
是否有适用于SQL Server 2014或更高版本的合并复制(合并复制),请提出建议。
感谢!
答案 0 :(得分:2)
如果您正在寻找事务/合并复制的替代方法,可以使用Service Broker作为传输,并根据存储过程和触发器编写自己的数据传输。在你的情况下(单向)并不是很难。我们在生产中使用这种数据传输 - 很容易过滤“子系统”的表数据,而不必重新初始化订阅,并且可以通过Service Broker进行顺序数据传输。此外,它保证了数据传输 - 即使连接服务代理在连接完成后也不会传递消息。当您有一个付费的SQL Server实例而其他人可以是Express时,服务代理可以正常工作。
答案 1 :(得分:2)
这绝不是一个全面的答案,但它会给你一些指导,然后你就可以独立研究。
以下是 I 与匿名拉订阅者合并复制的方式:
sp_addmergepullsubscription
以在新创建的订阅者数据库上创建匿名请求订阅以上粗略描述了订户可以直接连接到SQL Server分发服务器实例的过程。如果您打算使用Web同步连接到分发服务器,这是一个更驯服的野兽(尤其是IIS 7或更高版本),我将暂时离开它。