SQL 2005妙用跟踪令牌定位事务复制的延迟问题

我们知道,事务复制是将数据从发布服务器传到分发服务器然后复制到订阅服务器的过程 - 数据流几乎是实时地进行这些步骤。当有问题产生而造成流程中断,就会出现数据复制延迟。我们经常碰到的难题和关键是定位到哪一步是整个延迟的原因。从SQL2005开始支持的跟踪令牌功能,可以帮助我们轻松确定延迟问题是出现在1)从发布服务器到分发服务器,还是2)从分发服务器到订阅服务器。

跟踪令牌

跟踪令牌是一种特殊的时间戳事务,可以从复制监视器或运行T-SQL语句插入,它会被写到发布数据库的事务日志中并被日志读取代理获取。之后被分发代理读取并写到订阅服务器。每一步的时间戳都被记录到分发数据库的跟踪表中并显示在复制监视器或通过T-SQL语句获得。见下图:

在SQL Server Management Studio中,右击Replication(复制),然后选择Launch Replication Monitor(启动复制监视器)。

在复制监视器中,选择事务复制发布,然后打开Tracer Tokens页面。点击Insert Tracer插入新令牌。在插入跟踪令牌之后,复制监视器显示“Pending…”。

当日志读取代理获取令牌后,它会在分发数据库的Mstracer_token系统表中记录时间 – 通过计算插入令牌和日志读取代理获得令牌的时间差,来获得Publisher到Distributor的时间;然后分发代理获取令牌和并在分发数据库的Mstracer_history系统表中记录写入订阅方的时间 - 通过计算日志读取代理获得令牌和分发代理获取令牌并写入订阅方的时间差,来获得Distributor到Subscriber的时间。

跟踪令牌示例

在这个示例中,延迟大约持续了6秒,其中订阅方的写入只有1-2秒,但跟踪令牌却用了5秒将它们从发布服务器复制到分发服务器。因而,此示例中的事务延迟的关键显然应从日志读取代理开始而非分发代理。

再来看另一个例子,令牌复制到分发服务器用了3秒,但是到订阅服务器#1用了1秒,到订阅服务器#2用了4秒。尽管日志读取代理不像想象中那么快,但改进到订阅服务器#2的延迟将可以减少至少一半的整体延迟。

时间: 2024-10-27 08:26:27

SQL 2005妙用跟踪令牌定位事务复制的延迟问题的相关文章

解决非法卸载SQL 2005后出现的问题

出现此类问题一般都是在非法卸载SQL 2005出现的. 在 "开始" --> "运行"中输入 regedit,开启注册表编辑器. 定位到 [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Perflib 处,在右边的树形目录下可以看到Perflib目录下有004和009两个子目录. 在Sql Server 2005 的安装帮助文件中说的是需要查看009目录的注册表项,而我们大部分人

SQL 2005使用专用管理员连接(DAC)的技巧及修改系统表的方法_mssql2005

Server 2005 专用管理员连接 (DAC) 使用技巧 1 什么是专用管理员连接? SQL Server 2005 为管理员提供了一种特殊的诊断连接,以供在无法与服务器建立标准连接时使用. 2 专用管理员连接有什么用? 即使在 SQL Server 不响应标准连接请求时,管理员也可以使用这种连接访问 SQL Server,以便执行诊断查询并解决问题. 管理员可以通过 DAC 访问正在运行的 SQL Server Database Engine 实例来排除服务器的故障(即使该服务器已停止响应

SQL Server中事务复制造成更新丢失的解决方法

造成更新丢失的常见情况有三种: 1.发布数据库启用了read_committed_http://www.aliyun.com/zixun/aggregation/11220.html">snapshot隔离级别可能导致分发代理报20598错.我们可以通过检查发布数据库的隔离级别属性是否为read_committed_snapshot判断这种问题的可能性. use <pubdb> go dbcc useroptions go 2.订阅方手动改变数据 3.外键或触发器的"

在SQL 2005中用T-SQL插入中文数据时出现的问号或乱码的解决方案[转]

在SQL 2005中用T-SQL插入中文数据时出现的问号或乱码的解决方案 病症表现为:主要表现为用T-sql语句插入中文数据时数据库显示全是问号"???" 解决办法: 第一种办法:先选中出错的数据库→选中以后右键点击属性会弹出数据库属性 对话框→选中数据库属性对话框中的选项→把选项中的排序规则设置成:Chinese_PRC_90_CI_AS→最后点击确定即可.(注意:在选择数据库属性的时候必须确保你所修改的数据库未被使用才可以修改否则会失败的) 第二种办法:首先打开你的sql查询分析器

MS SQL 2005 安全设置

安全 拿到MS SQL 2005还没有一天,总的来说,MS SQL 2005的安全性比SQL 2000要强上不少,不过默认设置还是有和原来一样的漏洞,下面我们来修改一下默认设置. 1.安装MSSQL时使用混合模式,当然SA密码最好不能为空,在SQL2005中,可以对SA这个超级用户名进行修改或删除.use masterALTER LOGIN [sa] WITH NAME=[zxs] /*修改SA帐号*/sp_password '111111','123456','sa' /*修改SA密码*/使用

【交流】SQL 2005溢用之:合并列值

问题描述: 无论是在sql 2000, 还是在 sql 2005 中,都没有提供字符串的聚合函数, 所以, 当我们在处理下列要求时,会比较麻烦:   有表tb, 如下: id    value ----- ------ 1     aa 1     bb 2     aaa 2     bbb 2     ccc   需要得到结果: id     values ------ ----------- 1      aa,bb 2      aaa,bbb,ccc   即, group by id,

微软要增强SQL 2005安全功能

安全|微软 今年年末,微软将会为SQL 2005数据库增添一些改善安全的工具. 它们包括了代码检测工具Prefix和Prefast,两者都是由微软实验室制作的,能够自动检测常见漏洞,如内存溢出.Prefix负责检测数据库建立前的代码,而Prefast则负责检测编译后的代码. 微软欧洲首席安全顾问Detlef Echert表示,这是一项培养平台开发者安全意识的策略.当系统设计没有口令保护功能时,默认选项的安全显得尤为重要.开发者若要编写不安全的代码,必须通过数个步骤才能成功. 另一项安全增强功能是

MS SQL基础教程:事务复制

16.4.1 事务复制的特点 前面我们指出复制的本质就是从源数据库向目标数据库复制数据,但对不同的复制类型而言总是有差别的.从复制的具体内容来看快照复制是真正意义上的数据复制,不管采用何种数据接收方式(如将表删除后再重建或删除表中数据但保留表结构),在网络中传送的是数据.而事务复制在网络中传送的是事务(由一条或多条INSERT. DELETE. UPDATE):从传输的数据量来看,事务复制仅将发生的变化传送给订购者,是一种增量复制,但快照复制却将整个出版物复制给订购者. 由于事务复制要不断地监视

在ASP.NET中访问SQL 2005报表服务

在ASP.NET中,有多种方法可以访问SQL 2005的报表服务. 方法一: 通过ReportView控件 首先,安装ReportView控件.如果你使用的是SQL 2000报表服务器,到这个目录去找到源码工程 C:\Program Files\Microsoft SQL Server\MSSQL\Reporting Services\Samples\Applications\ReportViewer\vb and C:\Program Files\Microsoft SQL Server\MS