tracer token 追踪标记

tracer token是SQL SERVER 2005引入的一个追踪机制, 应用在replication的场景中.用于查看replication的延迟情况. tracer token的原理如下:

  1. 在publication database的日志里生成一条记录,该记录被标记成需要被复制.
  2. LogReader agent读取这条记录,插入到distribution database
  3. Distribution agent将distribution database该条记录插入到订阅服务器.

SQLSERVER会去追踪整个过程,统计三个时间段所花费的时间,这样就可以推断出哪个步骤出现了问题:到底是发布到分发慢,还是分发到订阅慢.进而有针对性的进行排查

 

tracer token可以再Replication Monitor里生成,也可以通过T-SQL语句来实现.

 

打开replication Monitor,选择要查看的发布.

image

 

从上图可以看出”从发布到分发”和”从分发到订阅”都存在延迟. 其中”从分发到订阅”的时间更长.

 

 

使用T-SQL

1 插入一个token

在发布服务器的发布库执行:

DECLARE   @tokenID   AS   int ;
exec  sp_posttracertoken  ' publicationTest ' , @tracer_token_id   =   @tokenID  OUTPUT
select   @tokenID   as  tokenID

image

其中publicationTest为发布的名称,执行时替换成实际的发布名称即可(可以通过sp_helppublication查到)

 

2 观察

这个token会被logreader agent传递到distribution database,最终被distribution agent传递到订阅.

这些信息被记录在distribution database

在distribution database内执行如下语句

select   *   from  MStracer_tokens  where  tracer_id =- 2147483642   -- ---trace_id为上一步的tokenID
select   *   from  MStracer_history  where  parent_tracer_id =- 2147483642

 

image

可以看到,我们在2011-06-01 13:47:13.500这个时间点插入了token,但目前还没有传递到分发,所以distributor_commit为null

过一段时间后再次执行

image

从截图里看以看到,distributor_commit为2011-06-01 13:52:03.120,距离插入token的2011-06-01 13:47:13.500已经过去了5分钟. subscriber_commit代表传递到订阅的时间:2011-06-01 13:52:07.630, 从分发到订阅大约是4秒.所以从这个可以看出replication的主要瓶颈出在从发布到分发这一步.

 

 

也可以在发布库执行

exec  sys.sp_helptracertokens publicationTest
EXEC  sys.sp_helptracertokenhistory  publicationTest,  - 2147483642

转载于:https://www.cnblogs.com/stswordman/archive/2011/06/01/2065979.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值