问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

合并复制的发布与订阅

发布网友 发布时间:2022-04-13 13:20

我来回答

2个回答

懂视网 时间:2022-04-13 17:41

在事务复制的过程中,有时候会由于各种各样的原因导致发布服务器和订阅服务器的数据不一致,造成这种情况往往是由于以下几种原因之一: 上面三种情况是最常见的导致发布端和订阅端数据不一致的原因,其中第三种原因往往出现的最多,在这种情况下,通常来说,

 

    在事务复制的过程中,有时候会由于各种各样的原因导致发布服务器和订阅服务器的数据不一致,造成这种情况往往是由于以下几种原因之一:

 

    上面三种情况是最常见的导致发布端和订阅端数据不一致的原因,其中第三种原因往往出现的最多,在这种情况下,通常来说,可以通过重新初始化订阅来解决该问题,但对于比较大的订阅来说,或者发布和订阅之间相隔太远而造成网络宽带的问题,则重新初始化订阅就不是那么吸引人的提案了。因此通过数据对比分析工具来比对有差异的数据,,并仅仅更新那些和源不同步的数据则是更好的选择。

    这类工具包括类似Redgate和xSql的数据对比工具,也可以使用Visual Studio自带的数据对比工具进行,下面我通过一个简单的Demo来展示如何解决该类问题。

 

DEMO

    目前我已经建立好一个发布服务器和订阅服务器,发布服务器CAREYSON-SQL发布了示例数据库AdventureWorks的SalesOrderDetail整张表,订阅服务器sqlazursql2012订阅了该表,如图1所示。

1

图1.基本的复制信息

 

   此时,我在订阅服务器人为的删除数据,造成发布服务器和订阅服务器的数据不一致,如图2所示。

 

2

图2.在订阅端手动删除数据,造成不一致

 

   我们再来服务端验证订阅,如图3所示。

   

3

    图3.验证订阅

 

    在复制监视器中,可以看到,在订阅服务器删除的一条数据导致了验证订阅出现不同步的提示,如图4所示。

 

4

   图4.订阅已经不再同步

 

   为了修正该问题,我们可以通过Visual Studio的数据库项目来建立数据对比分析任务来找到缺失的数据,从而根据发布端更新订阅端,如图5所示。

   

5

图5.找出被删除的数据

 

然后我们点击"更新目标",则被删除的数据会由发布端同步到订阅端。如图6所示。

6

图6.目标数据库已经更新

 

我们再次进行验证订阅,显示已经通过订阅,如图7所示。

7

图7.更新订阅端后,订阅通过验证

热心网友 时间:2022-04-13 14:49

合并复制必须先初始化发布服务器和订阅服务器,然后才能在它们之间传递数据。 本主题提供有关初始化期间所进行的操作的信息。 下表列出了发布的初始化操作的详细信息,在您执行列出的每个存储过程时,或在完成新建发布向导后,都会发生这些初始化操作。 在为发布首次运行快照代理后,会发生进一步的初始化。
sp_replicationdboption
将发布数据库标记为要进行复制。 除非删除复制,否则不能删除该数据库。
将系统表添加到发布数据库中(除非该数据库中已存在合并发布)。 有关系统表的完整列表,请参阅本主题中的“在发布数据库和订阅数据库中创建的系统表”部分。
sp_addmergepublication
将发布项添加到系统表中。
sp_addpublication_snapshot
将快照代理作业添加到 SQL Server 代理系统中。 作业名称的格式为 <发布服务器>-<发布数据库>-<发布>-<整数>。
sp_addmergearticle
将复制的每个对象标记为要进行复制。 除非从所有发布中删除对象的相应项目,否则不能删除对象。
将代表每个项目的条目添加到系统表中。
发布数据库的其余初始化操作在为发布首次运行快照代理时执行(以后运行快照代理时,不会重新初始化发布数据库)。 如果使用新建发布向导,默认情况下会在完成向导后创建初始快照。 如果使用存储过程,则必须运行代理作业或直接运行代理。 有关运行代理的详细信息,请参阅如何启动和停止复制代理 (SQL Server Management Studio)和复制代理可执行文件概念。
为发布首次运行快照代理:
在每个已发布的表中添加一个名为 rowguid的列,除非表中已有一个数据类型为 uniqueidentifier 并具有 ROWGUIDCOL 属性集的列(这种情况下将使用此列)。 rowguid列用于唯一标识每个已发布表中的每一行。 如果从发布中删除表,将删除 rowguid列;如果将现有列用于跟踪,则不删除该列。
在发布数据库中为每个已发布的表创建下列对象(所有对象都在 dbo架构中创建):
将插入、更新和删除触发器添加到已发布的表中,以跟踪更改。 触发器的命名格式为 MSmerge_ins_<GUID>、MSmerge_upd_<GUID>和 MSmerge_del_<GUID>。 GUID 值从系统表 sysmergearticles中项目的项派生而来。
创建存储过程以处理已发布表的插入、更新和删除操作,并执行与复制相关的其他一些操作。
创建视图以管理插入、更新、删除和筛选操作。
创建冲突表以存储冲突信息。 冲突表与已发布表的架构相匹配: 为每个已发布的表编写脚本,然后用脚本在发布数据库中创建冲突表。 冲突表的命名格式为 dbo.MSmerge_conflict_<发布>_<项目>。
每次运行快照代理时,都会为发布数据库中的每个项目创建下列类型的文件(带有相应的文件扩展名):
架构 (.sch)
约束和索引 (.dri)
触发器 (.trg)
系统表数据 (.sys)
冲突表 (.cft)
数据 (.bcp) -- 不会为使用参数化筛选器的发布创建。
如果发布不使用任何参数化筛选器,快照会将已发布表的数据包含在一组 .bcp 文件中。 如果发布使用参数化筛选器(对于合并发布通常如此),初始快照将不包含任何数据。 将使用订阅服务器分区的快照提供数据,这将在“初始化订阅”部分进行讨论。 每个订阅都在订阅的合并代理运行并将初始快照复制到订阅数据库时进行初始化。 除了已复制对象的架构和数据之外,快照还包含发布数据库中存在的系统表、视图、触发器和存储过程(还会将一个或两个额外的系统表复制到订阅数据库中)。 有关系统表的完整列表,请参阅本主题中的“在发布数据库和订阅数据库中创建的系统表”部分。 如果重新初始化订阅,将覆盖所有已复制对象和复制系统对象。
如果发布数据库中的任何表都未使用参数化筛选器,则向每个订阅服务器上复制相同的发布快照。 如果使用了一个或多个参数化筛选器,则每个订阅的初始化方式将由下列逻辑决定:
如果在命令行中为合并代理提供了快照位置:
则从此位置应用快照。
否则,如果快照是预生成的:
则从发布数据库中的 MSmerge_dynamic_snapshots检索快照的位置,并从该位置应用快照。
否则,如果发布允许订阅服务器初始化快照:
如果已经为具有同一分区的其他订阅服务器生成了快照,则将该快照应用于订阅服务器。
否则,将生成快照并将其应用于订阅服务器。
否则,将对发布中的表使用 SELECT 语句初始化订阅服务器。 此方法要比使用订阅服务器分区的快照慢得多。
如果快照传输在任一点中断,它将自动恢复并且不再重新发送已经全部传输的任何文件。 对于每个发布项目,快照代理的传递单位是bcp 文件,因此已部分传递的文件必须全部重新传递。 不过,恢复快照可以大幅度减少传输的数据量,即便在连接不可靠的情况下也可以确保及时进行快照传递。 有关创建快照的详细信息,请参阅带有参数化筛选器的合并发布的快照。

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
做了好乱的梦,求解! ae缺少p1效果是要装什么插件? ...荣耀》中“网络诊断”居然可以测定酒店有无摄像头,这是好事吗? 七叶一枝花花苞里面的红米是什么 q了是什么意思? ...Q就可以,格式也没错,也只几十K,别人发给我都可以,哪里出问题了... 显的么说友Q在微 ?Q上新示怎让在说我空里动间的态不更好博 诺诗兰户外品牌怎么样 新隋唐英雄传张卫健萧妃是刘小庆吗 红尖椒和朝天椒介绍!红尖椒和朝天椒哪个辣? excel如何显示其他页单元格的内容 qq接收excel文件看不到第二页 excel表格里有80页的纸为什么打开打印预览的时候看不到第二页,滑动鼠标滑轮的时候始终留在第一页? 怎样组建一个足球队? - 信息提示 深圳市青少年足球发展基金合伙企业(有限合伙)怎么样? 成都为何叫天府之国? 360重装系统前提示硬盘SMART数据异常,建议更换硬盘。请问需要更换硬盘吗? 硬盘提示smart损坏 怎么搞 电脑开机报smart错误,通过bios自检,有报硬盘错误。 开机后非常卡,重装系统显示硬盘Smart异常,硬盘还能修复吗?如何修复 重装系统,电脑出现SMART FAILURE 笔记本系统想重装,显示smart数据异常,怎么办 如何使用wallpaper engine wallpaper engine怎样制作 怎么制作wallpaper engine 美联储加息对中国货币的影响 美联储加息对中国有什么影响 美联储加息意味着什么,对中国有哪些影响 二手交易网站的优势与劣势,例如58同城、赶集网、淘宝跳蚤街、百姓网等。 越详细越好!!急!!!! 网红抖音鸡爪的做法步骤图,怎么做好吃 做完运动第二天腿疼怎么办 怎样才能缓解由于锻炼引起的腿痛 健身后 隔天肌肉酸痛 不能工作 怎么办 今天刚蛙跳完,如何避免第二天腿疼 跳完蛙跳后的第二天开始腿疼,有什么方法能让他不疼 去健身房运动后第二天腿疼第三天更痛正常吗 小米5手机恢复出厂设置后的文件怎么找回 10米钓竿配几米线好? 有关实力的名言名句 如何检测橡胶挤出机螺杆直线度 合同制员工和正式员工有什么区别?待遇方面呢? 关于实力的名人名言。 关于实力的名人名言 人力、正式工、合同工有什么区别? 求关于实力的名人名言! 急求关于实力和尊严的名言名句! 能力的名言警句有哪些 关于有实力才能获胜的名人名言 科技强国的名言名句有哪些?