Replication的犄角旮旯(四)--关于事务复制的监控
《Replication的犄角旮旯》系列导读
Replication的犄角旮旯(一)--变更订阅端表名的应用场景
Replication的犄角旮旯(二)--寻找订阅端丢失的记录
Replication的犄角旮旯(三)--聊聊@bitmap
Replication的犄角旮旯(四)--关于事务复制的监控
Replication的犄角旮旯(五)--关于复制identity列
Replication的犄角旮旯(六)-- 一个DDL引发的血案(上)(如何近似估算DDL操作进度)
Replication的犄角旮旯(七)-- 一个DDL引发的血案(下)(聊聊logreader的延迟)
Replication的犄角旮旯(八)-- 订阅与发布异构的问题
Replication的犄角旮旯(九)-- sp_setsubscriptionxactseqno,赋予订阅活力的工具
---------------------------------------华丽丽的分割线--------------------------------------------
最近经常被群里的朋友问到如何监控复制状态这样的问题;总结一下我自己的经验吧,仅供参考;
关于事务复制,一般监控的内容无外乎代理的状态(重试、失败)、复制延迟两类,而复制延迟又分为两个阶段(发布到分发、分发到订阅)
检测复制代理状态
MSdistribution_agents --其中每个在本地分发服务器上运行的分发代理对应一行。此表存储在分发数据库中。
http://msdn.microsoft.com/zh-cn/library/ms174399%28v=sql.120%29.aspx
MSdistribution_history --包含与本地分发服务器关联的分发代理的历史记录行。 此表存储在分发数据库中。
http://msdn.microsoft.com/zh-cn/library/ms179878%28v=sql.120%29.aspx
根据这两个系统表,可以查出近期分发代理的状态;
MSdistribution_agents中的id列与MSdistribution_history中的agent_id关联
MSdistribution_history中的runstatus列表示运行状态
运行状态:
1 = 启动。
2 = 成功。
3 = 正在进行。
4 = 空闲。
5 = 重试。
6 = 失败。
如果对MSdistribution_history表的time列取最近N分钟的记录,与MSdistribution_agents 做right join,则可以看出近N分钟内,是否存在不活动的分发代理;
检测复制延迟
sp_replmonitorhelpsubscription --返回发布服务器上属于一个或多个发布的订阅的当前状态信息,并为每个返回的订阅返回一行。 在分发服务器上对分发数据库执行此存储过程,用于监视复制。
http://msdn.microsoft.com/zh-cn/library/ms188073%28v=sql.120%29.aspx
用法如下:
EXEC distribution.dbo.sp_replmonitorhelpsubscription NULL,NULL,NULL,0,0,0,NULL,0
其中latency表示在事务发布中,由日志读取器代理或分发代理传播的数据更改的最长滞后时间(秒)
尽管这个值并不能明确的表示具体是哪个阶段发生的延迟(发布到分发、分发到订阅)
关于复制延迟进一步的判断
sp_replcounters --为每个发布数据库返回有关滞后时间、吞吐量和事务计数的复制统计信息。 此存储过程在发布服务器的任何数据库中执行。
http://msdn.microsoft.com/zh-cn/library/ms190486%28v=sql.120%29.aspx
其中Replicated transactions列表示日志中等待传送到分发数据库的事务数;也就是logreader等待从日志中读取的事务数。如果这个值持续增长,说明logreader正处于繁忙状态。首要检查一下VLF是否过多,或者是否写入量较大;
具体的处理办法,可以参考一下高桑的《Replication--复制延迟的诊断和解决》
msrepl_commands --包含复制的命令行数。 该表存储在分发数据库中。
http://msdn.microsoft.com/zh-cn/library/ms178611.aspx
这个表是已经从发布库日志中读取到信息,转换为复制命令存储到此表中,每个命令对应一条记录;
如果这个表的记录数过大(前提是publication中immediate_sync为false,且刚刚执行过分发清除代理时),则表明当前有较多的复制命令未完成分发,说明分发代理繁忙。需要检查一下订阅端是否存在锁、或者较多的索引,导致分发代理效率低下;
关于publication中immediate_sync属性
在默认情况下,immediate_sync是关闭的,这个属性可以在创建publication时指定,也可以在创建完毕后修改。 如果immediate_sync为true, snapshot 文件和replicated transaction将一直保留到data retention.然后才会被删除。这会导致distribution 数据库增长,复制性能下降。 所以推荐设置为false. 需要注意的时,如果一个数据库有多个publication,只要其中有一个publication的immediate_sync为true,将会导致 这个数据库的所有publication的replicated transaction的保留期都延长至data retention.
或者更准确一些,使用sp_replmonitorsubscriptionpendingcmds
sp_replmonitorsubscriptionpendingcmds -- 返回有关对事务发布的订阅的等待命令数以及处理这些命令的粗略估计时间的信息。 此存储过程针对每个返回的订阅返回一行。 在分发服务器的分发数据库上执行此存储过程,用于监视复制。
使用方法:
sp_replmonitorsubscriptionpendingcmds [ @publisher = ] 'publisher'
, [ @publisher_db = ] 'publisher_db'
, [ @publication = ] 'publication'
, [ @subscriber = ] 'subscriber'
, [ @subscriber_db = ] 'subscriber_db'
, [ @subscription_type = ] subscription_type 结果集
aaarticlea/png;base64,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" alt="" />
刚刚又被朋友问到,发生延迟的时候,是否能定位到是哪些表有频繁的事务;
下面这个脚本是检索当前msrepl_commands中命令涉及表的分布情况,基本可以定位到引起延迟的对象;
如果需要检索最近N分钟的情况,按照b.entry_time在CTE中取最近的N分钟即可;
--当前msrepl_commands表中命令涉及表的分布情况
WITH cte AS(SELECT a.xact_seqno,b.entry_time,
REPLACE(CONVERT(NVARCHAR(1024),SUBSTRING(a.command,17,1024)),'[dbo].[sp_MS','') commands
FROM dbo.MSrepl_commands a(NOLOCK)
JOIN MSrepl_transactions b(NOLOCK) ON a.xact_seqno=b.xact_seqno
)
SELECT SUBSTRING(commands,9,CHARINDEX(']',commands)-9),COUNT(1) FROM cte WHERE CHARINDEX(']',commands)>9
GROUP BY SUBSTRING(commands,9,CHARINDEX(']',commands)-9)
ORDER BY COUNT(1) DESC
欢迎拍砖;
Replication的犄角旮旯(四)--关于事务复制的监控的更多相关文章
- Replication的犄角旮旯(五)--关于复制identity列
<Replication的犄角旮旯>系列导读 Replication的犄角旮旯(一)--变更订阅端表名的应用场景 Replication的犄角旮旯(二)--寻找订阅端丢失的记录 Repli ...
- Replication的犄角旮旯(三)--聊聊@bitmap
<Replication的犄角旮旯>系列导读 Replication的犄角旮旯(一)--变更订阅端表名的应用场景 Replication的犄角旮旯(二)--寻找订阅端丢失的记录 Repli ...
- Replication的犄角旮旯(一)--变更订阅端表名的应用场景
<Replication的犄角旮旯>系列导读 Replication的犄角旮旯(一)--变更订阅端表名的应用场景 Replication的犄角旮旯(二)--寻找订阅端丢失的记录 Repli ...
- Replication的犄角旮旯(二)--寻找订阅端丢失的记录
<Replication的犄角旮旯>系列导读 Replication的犄角旮旯(一)--变更订阅端表名的应用场景 Replication的犄角旮旯(二)--寻找订阅端丢失的记录 Repli ...
- Replication的犄角旮旯(六)-- 一个DDL引发的血案(上)(如何近似估算DDL操作进度)
<Replication的犄角旮旯>系列导读 Replication的犄角旮旯(一)--变更订阅端表名的应用场景 Replication的犄角旮旯(二)--寻找订阅端丢失的记录 Repli ...
- Replication的犄角旮旯(七)-- 一个DDL引发的血案(下)(聊聊logreader的延迟)
<Replication的犄角旮旯>系列导读 Replication的犄角旮旯(一)--变更订阅端表名的应用场景 Replication的犄角旮旯(二)--寻找订阅端丢失的记录 Repli ...
- Replication的犄角旮旯(八)-- 订阅与发布异构的问题
<Replication的犄角旮旯>系列导读 Replication的犄角旮旯(一)--变更订阅端表名的应用场景 Replication的犄角旮旯(二)--寻找订阅端丢失的记录 Repli ...
- Replication的犄角旮旯(九)-- sp_setsubscriptionxactseqno,赋予订阅活力的工具
<Replication的犄角旮旯>系列导读 Replication的犄角旮旯(一)--变更订阅端表名的应用场景 Replication的犄角旮旯(二)--寻找订阅端丢失的记录 Repli ...
- 第四篇 Replication:事务复制-订阅服务器
本篇文章是SQL Server Replication系列的第四篇,详细内容请参考原文. 订阅服务器就是复制发布项目的所有变更将传送到的服务器.每一个发布需要至少一个订阅,但是一个发布可以有多个订阅. ...
随机推荐
- Oracle 11G在用EXP 导出时,空表不能导出解决
Oracle 11G在用EXP 导出时,空表不能导出解决 (转)(.http://wanwentao.blog.51cto.com/2406488/545154 11G中有个新特性,当表无数据时,不分 ...
- TDDL DataSource
TDDL DataSource 分为 AtomDataSource GroupDatasource 他们两者没有依赖关系, 都实现了 JDBC 规范, 可以作为独立的 datasource 单独使用 ...
- (一)startup.bat
那么startup.bat(// TODO startup.sh暂缓)启动后发生了什么呢? @echo off rem Licensed to the Apache Software Foundati ...
- hdu 5877 (dfs+树状数组) Weak Pair
题目:这里 题意: 给出一个n个结点的树和一个数k,每个结点都有一个权值,问有多少对点(u,v)满足u是v的祖先结点且二者的权值之积小于等于k. 从根结点开始dfs,假设搜的的点的权值是v,我们需要的 ...
- 20151210study
-----------------------------------------------------The election officials were not neutral.选举官员并不是 ...
- X-UA-Compatible失效问题
有时候发现页面中写了<meta http-equiv="X-UA-Compatible" content="IE=8" />,但是文档模式依旧没改变 ...
- jsoup
jsoup 相关知识链接:http://blog.csdn.net/column/details/jsoup.htm http://www.jb51.net/article/43485.htm htt ...
- 使用Application Insights 做分析
Application Insights on Windows Desktop apps, services and worker roles : https://azure.microsoft.co ...
- Mono for android 如何动态添加View,线程内部如何更新UI.
貌似所有设计到UI的程序原理都是一样的,子线程是不能够更新UI状态的,所以就必须使用UI自身或者第三方来更新UI. 如 在WinForm 中 就可以使用Control.Invoke(Action ac ...
- exp
想将远程机器上的数据库备份,搞了一上午,终于解决了: exp 用户名/密码@ip/service名 file=地址+文件名