我正在尝试在两台服务器(一个发布者和一个订阅者)之间实现合并复制。
假设这些表:
--Main table in Publisher
Ticket (id, userId, reqId, blockedDate, usedDate, returnDate, transferDate, ...)
--On Subscriber (The fields are in Publication)
Ticket (id, userId, blockedDate, usedDate)
我们必须将当前日期分配给transferDate
当行进入订阅者时,并分配给returnDate
它从订阅者返回时。由于我们必须考虑文件同步(使用 USB 记忆棒向/从订阅者传输/返回数据!)这些字段必须在同步文件同步或复制时分配。
我知道您可以为冲突解决添加自定义业务逻辑(发生冲突时)。我正在寻找类似触发器的复制事件,这使我能够从发布(甚至需要时甚至是另一个表)中操作某些字段。
问题
是否可以手动处理复制事件(推送和拉取)?**(自定义或覆盖 PULL/PUSH。不是冲突解决程序)**
你能给我一个实现自定义合并复制和在
distributed transaction
SP 的帮助下同步之间的比较吗?
我需要安排同步(在数据库服务器上没有负载的午夜),但是我们非常需要能够手动同步(从我们的 Web 应用程序中)。
在第二个问题中,我需要它们的性能、可靠性,当然还有它们的可维护性。这些因素尤其是前两个因素是一个大问题。假设 Publisher 可能有几百万条记录,而 Subscriber 可能有几万条记录。所以每次同步,大约会传输几万条记录。
合并复制检查行;如果有变化并且没有冲突,则该行合并。如果存在冲突,冲突解决程序(可以是您的自定义存储过程解决程序)会处理冲突。我想在第一种情况下(数据更改无冲突)编写自己的逻辑而不是SQL内置的合并机制。显然我想定制它。
文章中只有id, userId, blockedDate, usedDate
专栏。我想returnDate
在 aTicket
返回 Publisher 时填充(在pull上)并transferDate
在 aTicket
返回 Subscriber 时填充(在push上)。