• 复制代理JOB


    复制代理说明: 复制代理执行许多与复制有关的任务,其中包括创建架构和数据副本、检测发布服务器或订阅服务器上的更新以及在服务器之间传播更改。 默认情况下,复制代理在 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 --重新初始化所有未通过数据验证的订阅。
  • 相关阅读:
    前端知识之HTML内容
    数据库之表操作
    初识数据库
    Python连接MySQL数据库之pymysql模块使用
    并发编程之协程
    个人库
    Apache conf配置文件 allow deny order files directory location解释,re(正则表达式)入门速成
    Arduino在vscode中输出乱码解决方案及解释
    UOJ Judgement Failed惨痛教训
    vscode导出插件列表
  • 原文地址:https://www.cnblogs.com/zerocc/p/3208621.html
Copyright © 2020-2023  润新知