如何查看distirbution agent的执行进度

php中文网
发布: 2016-06-07 17:42:28
原创
1207人浏览过

在 transactional replication troubleshooting 的过程中,经常会遇到下面的场景: 客户在发布端执行了一个几百万行的更新,结果导致性能下降。 客户很想知道目前 distribution agent 的进度,完成的百分比,决定是等下去还是跳过这个过程。如果已经完成了 9

transactional replication troubleshooting的过程中,服务器空间,经常会遇到下面的场景:

客户在发布端执行了一个几百万行的更新,结果导致性能下降。 客户很想知道目前distribution agent的进度,香港虚拟主机,完成的百分比,决定是等下去还是跳过这个过程。如果已经完成了90%,那么贸然停止就非常可惜了,并且rollback的操作也是要很长时间的。

   

下面介绍如何查看进度。

对比结果就可以知道进度了。

   

如果没有启用verbose log,就比较麻烦了,下面是具体的步骤。

  • 找到相应的distribution agent 名称和publisher_database_id

    select *From distribution..msdistribution_agents

  • 通过名称就可以找到distribution agent进行的process id. distributor上执行下面的语句。

    select hostprocess from sys.sysprocesses where program_name=@mergeAgentName

  • 同一个distribution agent进程的process id是相同的,所以可以通过这个process id(对应trace里的client process id),免备案空间,使用sql server trace得到distribution agent正在subscriber端执行的语句.
  • 假设我们得到了下面这个语句exec [dbo].[sp_MSupd_dbota] default,511,4,0x02
  • 根据这个存储过程,我们可以得到相应的aritlce_id

  • subscription database 执行sp_helptext,得到表的名称
  • distribution数据库查询得出article_id. select article_id from msarticles where destination_object=@tablename
  • select transaction_timestamp,* From MSreplication_subscriptions where distribution_agent=@distribution_agent

  • 接下来就可找到distribution agent当前正在执行的xact_seqno. 将第一步得到的publisher_database_id,5步得到的article_id和上一步得到的xact_seqno带入下面的查询

    select xact_seqno,count(*) as number From distribution..msrepl_commands with(nolock)

    where publisher_database_id=@publisher_database_id and article_id=@article_id

    xact_seqno>@xact_seqno group by xact_seqno order by xact_seqno

  • 顺序靠前,并且number较大的就是正在执行的事务了。 您可能会问,为什么不是第六步得到的xact_seqno的下一个呢(select min(xact_seqno)From distribution..msrepl_commands with(nolock)where publisher_database_id=@publisher_database_id and xact_seqno>@xact_seqno).

  • 用第四步得到的语句去查找,这样就可以知道当前执行到了什么位置
  • 最佳 Windows 性能的顶级免费优化软件
    最佳 Windows 性能的顶级免费优化软件

    每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。

    下载
    来源:php中文网
    本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
    最新问题
    开源免费商场系统广告
    热门教程
    更多>
    最新下载
    更多>
    网站特效
    网站源码
    网站素材
    前端模板
    关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
    php中文网:公益在线php培训,帮助PHP学习者快速成长!
    关注服务号 技术交流群
    PHP中文网订阅号
    每天精选资源文章推送
    PHP中文网APP
    随时随地碎片化学习
    PHP中文网抖音号
    发现有趣的

    Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号