复制代理说明: 复制代理执行许多与复制有关的任务,其中包括创建架构和数据副本、检测发布服务器或订阅服务器上的更新以及在服务器之间传播更改。 默认情况下,复制代理在 Microsoft SQL Server 代理作业步骤下运行。 由于这些代理完全是可执行文件,因此可以从命令行和批处理脚本直接调用它们。 每个复制代理支持一组运行时参数,用于控制代理的运行方式;这些参数在代理配置文件或命令行中指定。可以通过下图来看复制代理相关的JOB与计划:

清除作业

说明

默认调度

代理历史记录清除:分发

从分发数据库中删除复制代理历史记录。

每十分钟运行一次

分发清除:分发

从分发数据库中删除复制的事务。 停用在最大分发保持期内尚未同步的订阅。

每十分钟运行一次

过期订阅清除

从发布数据库检测和删除过期的订阅。

每天凌晨 1:00 运行

重新初始化数据验证失败的订阅

检测所有未通过数据验证的订阅并标记它们以进行重新初始化。 下次合并代理或分发代理运行时,订阅服务器上将应用新快照。

无默认调度(默认情况下未启用)。

复制代理检查

检测未积极记录历史信息的复制代理。 如果作业步骤失败,它将写入 Microsoft Windows 事件日志。

每十分钟运行一次。

分发的复制监视刷新器

刷新复制监视器所使用的缓存的查询。

连续运行。

以下为代理详细说明:

1. 代理历史记录清除:distribution  , 默认为每10分执行一次

USE distribution
GO
exec sp_MShistory_cleanup --会删除与本地分发服务器的快照,日志读取器和分发代理的历史行

从 MSmerge_history 中删除了 0 条历史记录。
从 MSmerge_articlehistory 中删除了 0 条历史记录。
从 MSsnapshot_history 中删除了 0 条历史记录。
从 MSlogreader_history 中删除了 0 条历史记录。
从 MSdistribution_history 中删除了 0 条历史记录。
从 MSqreader_history 中删除了 0 条历史记录。
从 MSrepl_errors 中删除了 0 条历史记录。
从 sysreplicationalerts 中删除了 0 条历史记录。
从 MStracer_tokens 中删除了 0 条历史记录。
在 0.033      秒(0 行/秒)内删除了 0 条复制历史记录。
从上面的消息可以看到 sp_MShistory_cleanup 都做了什么操作。

2. 分发清除: distribution , 默认为每10分执行一次

EXEC dbo.sp_MSdistribution_cleanup   --作业用于清除 distribution 库中事务(已经/没有同步到订阅的事务,这取决于具体的参数),如果禁止该作业,那么由log reader agent 传递到分发库的数据就会越积越多。而 distribution agent 会扫描相应的表,将数据传递到订阅库。因此过多的数据会造成 distribution agent效率低下,一起复制的延迟等…..并且也会引起 distribution 库文件扩张

JOB默认第10分执行一次,调用  EXEC dbo.sp_MSdistribution_cleanup@min_distretention = 0, @max_distretention = 72

@min_distretention 表示当前事务被传送到订阅后,最小保留的时间,这里是0小时,表示事务被传递到订阅后会被立刻删除。

@max_distretention 表示没有被传递到订阅的事务的最长时间。这里是72小时,即如果一些事务在72小时后仍没有被传递到订阅,会被删除掉,这会造成发布库和订阅库数据的不一致。

------------------

sp_MSdistribution_cleanup 会去移除过期的订阅并---删除MSrepl_commands表和MSrepl_transactions表中的数据,并删除相应的快照文件

cleanup会删除48小时以前的历史记录。

3. 复制代理检查

EXEC sp_replication_agent_checkup   --检查每个分发数据库的复制代理,这些代理正在运行但在指定检测信号间隔内没有历史记录。 此存储过程在分发服务器的任何数据库中执行

4. 过期的订阅清除  --默认每10分执行一次

USE TEST
GO
EXEC sys.sp_expired_subscription_cleanup --检查每个发布的所有订阅的状态并删除过期的订阅。 此存储过程在发布服务器的任何数据库中执行,或在分发服务器的用于非Microsoft SQL Server 发布服务器的分发数据库中执行。

5. 重新初始化未通过数据验证的订阅  , 无执行计划,需要时候可以手工来启动。

exec sys.sp_MSreinit_failed_subscriptions --重新初始化所有未通过数据验证的订阅。

复制代理JOB的更多相关文章

  1. 停止复制代理后AWT缓存组的行为

    AWT缓存组中尽管大多数时候数据是从TimesTen到Oracle,但也存在数据从Oracle到TimesTen的情形. 数据从TimesTen下沉到Oracle依靠复制代理,数据从Oracle到Ti ...

  2. SqlServer 更改复制代理配置文件参数及两种冲突策略设置

    原文:SqlServer 更改复制代理配置文件参数及两种冲突策略设置 由于经常需要同步测试并更改代理配置文件属性,所以总结成脚本,方便测试. 可更新订阅的冲突策略有两种情况:一是在发布中冲突,即订阅数 ...

  3. Replication--修改复制代理配置来查看代理运行情况

    1>在复制监视器中选中订阅右键 2>选择代理配置文件 3>将代理配置文件设置为”详细历史记录代理配置文件“,确定以保存 4>重启代理 5>代理运行一段时间后,重启代理 6 ...

  4. SQLServer复制(二)--事务代理作业

    之前的一篇已经介绍了如何配置复制,介绍了发布者.分发者和订阅者以及事务日志运行的简单关系.其中提到了复制代理,我们这篇将详细介绍复制代理,它是什么?在事务复制的步骤中起到了什么作用? 代理和工作 首先 ...

  5. SQL Server 合并复制遇到identity range check报错的解决

        最近帮一个客户搭建跨洋的合并复制,由于数据库非常大,跨洋网络条件不稳定,因此只能通过备份初始化,在初始化完成后向海外订阅端插入数据时发现报出如下错误: Msg 548, Level 16, S ...

  6. SQL Server 复制:事务发布

    一.背景 在复制的运用场景中,事务发布是使用最为广泛的,我遇到这样一个场景:在Task数据库中有Basic与Group两个表,需要提供这两个表的部分字段给其它程序读取放入缓存,程序需要比较及时的获取到 ...

  7. SQL Server复制情况下的高可用方案(一)镜像+复制

    数据库镜像可以与事务复制一起使用实现数据库整体的高可用性和高性能,其中镜像可以提供故障检测和故障转移,复制则用于实现读写分离. 数据库镜像涉及一个数据库的两个副本,这两个副本通常驻留在不同的计算机上. ...

  8. SQL Server提高事务复制效率优化(一)总体概述

      随着公司业务的发展,数据量增长迅速,在解决Scale Out的同时,还要考虑到主从的复制延迟问题,尽量降到1s以内满足线上业务,如果不调整,SQL Server默认的配置可能平均要3s左右.生产的 ...

  9. Replication的犄角旮旯(四)--关于事务复制的监控

    <Replication的犄角旮旯>系列导读 Replication的犄角旮旯(一)--变更订阅端表名的应用场景 Replication的犄角旮旯(二)--寻找订阅端丢失的记录 Repli ...

随机推荐

  1. 争夺 & KM思想

    题意: 给一张二分图,每个点与两个特定点又一条边相连,边权非负,让你给这个二分图每个点一个顶标,让每一条边两端顶标和大于等于这条边.求出最小顶标和. 这当然是翻译过的题目... 原题: 小Y和小P无聊 ...

  2. topcoder SRM 618 DIV2 WritingWords

    只需要对word遍历一遍即可 int write(string word) { ; ; i < word.length(); ++ i){ cnt+=word[i]-; } return cnt ...

  3. [知识点]Cantor展开

    // 此博文为迁移而来,写于2015年3月14日,不代表本人现在的观点与看法.原始地址:http://blog.sina.com.cn/s/blog_6022c4720102vtyo.html 1.含 ...

  4. 【BZOJ】1119: [POI2009]SLO

    题意 长度为\(n(1 \le n \le 1000000)\)的账单,\(+\)表示存1,\(-\)表示取1,任意时刻存款不会为负.初始有\(p\),最终有\(q\).每一次可以耗时\(x\)将某位 ...

  5. ThinkPHP3.2.2 Widget扩展以及widget demo实例

    Widget扩展一般用于页面组件的扩展. 先说明Widget被调用的方法,你只需要在你的模板文件中使用这样的语法:{:W("Demo/demo_widget_method",arr ...

  6. php归档函数(按时间)实现

    今日开发本站需要用到按时间归档文章的功能,即按文档发布时间将文章文类,以实现检索和统计功能,于是自己写了一个, 现分享给大家,相信大家工作和学习中有可能会用到,实现原理很简单,即取出文章发布时间戳的年 ...

  7. struts2常用标签使用说明

    在struts2中,用的是s标记,先在jsp文件中引入标记:<%@ taglib prefix="s" uri="/struts-tags"%> & ...

  8. php链接mysql数据库

    php连接数据库有三种方法,刚刚发现通过mysql_connect,mysql_query连接已被废弃,而现在推荐的是通过“面向对象方法”和“PDO方法”连接数据库. 而我在使用面向对象的方法连接时, ...

  9. Rocky4.2下安装金仓v7数据库(KingbaseES)

    1.准备操作系统 1.1 系统登录界面 1.2 操作系统版本信息 jdbh:~ # uname -ra Linux jdbh -x86_64 # SMP Fri Dec :: CST x86_64 G ...

  10. [转]nls_lang设置

    1. NLS_LANG 参数组成NLS_LANG参数由以下部分组成:NLS_LANG=<Language>_<Territory>.<Clients Characters ...