【发布时间】:2018-11-07 12:08:32
【问题描述】:
我读过一些非官方的文章说合并复制实际上将数据存储为事务并将它们复制为事务。但是在 MSDN 或任何我能接触到的官方来源上都没有关于这方面的官方信息。
拜托,有人能帮我说清楚吗?如果它存储交易 - MSMerge_contents 中是否有任何链接到相应交易?它怎么会像here 所说的那样过滤插入/更新/删除?
如果它不复制事务,它会将实际数据存储在哪里以进行复制?
我个人认为合并复制不使用事务日志来存储数据。
表触发器(MSmerge 触发器)将每个事务转换为增量生成信息,并将该信息存储在系统元数据表 MSmerge_contents、MSmerge_tombstone 和 MSmerge_genhistory 中,您可以在其中通过 tablenick 连接每个表并使用 rowguid 列查找行(用于 MSmerge_contents 和 MSmerge_tombstone) .
Replication Agent 为发布者和订阅者比较 MSmerge_contents 的内容,它复制新行并根据 rowguid 列和每行的代号更改现有行。它使用实际表中的实际行,通过 rowguid 连接。 MSmerge_tombstone 表也是如此。
它不使用事务日志。它甚至没有激活日志阅读器。
【问题讨论】:
标签: sql-server merge-replication