第九篇 Replication:复制监视器

本篇文章是SQL Server Replication系列的第九篇,详细内容请参考原文



复制监视器允许你查看复制配置组件的健康状况。这一篇假设你遵循前八篇,并且你已经有一个合并发布和事务发布。
启动复制监控器
复制监视器不是SSMS的一部分,它是一个独立的可执行文件(SqlMonitor.exe)。在一个标准的SQL Server安装中开始菜单下找不到复制监视器。启动复制监视器的最简单方法是:SSMS对象资源管理器下连接到发布服务器,右击你的发布选择"启动复制监视器",如图9.1所示:

图9.1 启动复制监视器
复制监视器的主屏幕如图9.2所示。屏幕分成两部分,左边的显示发布服务器列表,你连接的所有发布服务器。如果你选择一个发布服务器,在右边你可以看到关于它的发布的详细信息。

图9.2 复制监视器主屏幕
连接发布服务器
如果你是通过SSMS的发布启动复制监视器,那个发布对应的发布服务器会自动添加到发布服务器列表。如果你想连接其他的发布服务器,你可以右击发布服务器列表的任何文件夹,在弹出的菜单选择"添加发布服务器…",如图9.3所示:

图9.3 添加发布服务器
打开的页面允许你连接一个或多个发布服务器。首先你需要点击"添加"按钮选择添加单独的发布服务器或指定分发服务器并添加其发布服务器。下拉菜单如图9.4所示:

图9.4 添加SQL Server发布服务器
在你选择后会出现一个标准的数据库连接对话框。如果你直接选择添加一个发布服务器并且发布服务器对应的分发服务器不是同一个实例,你会看到图9.5所示的对话框:

图9.5 发布服务器与分发服务器不是同一个实例
然后你会再次看到一个标准的数据库连接对话框,这次需提供分发服务器的凭证。你可以重复多次选择发布服务器或分发服务器,添加任意你需要的发布服务器到列表。
你所添加的发布服务器都会显示在"添加发布服务器"对话框的上半部分。你可以为每一个发布服务器选择复制监视器启动时自动连接以及自动刷新。对话框中选择的发布服务器会分到相同的组(切换到发布服务器组视图)。在"添加发布服务器"对话框的下半部分,你可以指定新发布服务器添加到哪个组。如图9.6所示:

图9.6 发布服务器属性
这个组创建单一级别的文件夹结构,因此你不能在一个组下创建另一个组。
你只能对每个发布服务器连接一次。意味着每一个发布服务器只能在某一个组中。如果你尝试第二次连接一个发布服务器,复制监视器会提示发布服务器已被复制监视器监视。
发布服务器详情
如果你选择左侧列表中的一个发布服务器,在右侧面板会显示其更多信息。右侧面板按照发布服务器模式显示信息,它有三个页签。
第一个页签是"发布",如图9.7所示:

图9.7 发布
这里你可以看到所有定义的发布,它们的状态以及订阅数。最右边三列包含多少订阅正在同步,以及当前同步的性能。这个性能的测量是依据所有订阅的性能。它可以是"很好"、"好"、"Fair"、"差"、"严重"。事务订阅的性能,只有在警告页签启用阈值后才测量。合并发布的性能,需至少有五次同步后才显示。更多详细信息参考Books Online.
发布服务器模式的第二个页签是"订阅监视列表",如图9.8所示:

图9.8 订阅监视列表
订阅监视列表提供对所有发布对应的订阅的整体查看。在左顶部下拉列表你可以选择显示事务订阅、显示合并订阅或显示快照订阅。每一种类型对应的列列表是不一样的。更多详细内容会在后续章节提及。
右顶部下拉列表允许筛选问题订阅。所有可用的选项如图9.9所示:

图9.9 订阅筛选项
如果你选择任何一项,那么只有满足条件的订阅才会显示在列表中。如果你在处理很多订阅,这个功能将有很大帮助。
发布服务器模式的第三个页签是"代理",如图9.10所示:

图9.10 复制代理信息
在代理类型下拉列表你可以选择展示哪一种类型的代理。可用的类型列表如图9.11所示:

图9.11 代理类型
复制监控器中对于日志读取器代理在这里显示了最多的信息,因此如果你认为日志读取器有问题的话首先要检查这里。显示的信息包括当前状态、上次启动时间、上一操作。对于非维护作业类型,还包括最近运行的性能信息以及事务和命令数。
事务发布
如果你在左侧发布列表中点击一个事务发布(MyFirstPublication),在右侧就会显示事务订阅模式。它有四个页签。第一个页签是"所有订阅"。它显示了所选发布的所有订阅。你可以查看每一个订阅的状态和部分性能信息。图9.12显示了一个订阅的列表

图9.12 所选发布的订阅
状态列显示这个订阅的分发代理是正在运行、不在运行或重试。另外它还可以包含警告信息比如"即将过期"。性能列给出了订阅服务器的粗略速度。滞后时间显示变更从发布服务器到订阅服务器所需的时间。
事务订阅模式的第二个页签是"跟踪令牌"。如图9.13所示:

图9.13 跟踪令牌
一个跟踪令牌是写入到发布数据库的日志文件中的特殊标记。跟踪令牌不会影响发布或订阅数据库中的复制表中的真实数据变更。然而,复制代理将这个标记当作正常事务。这意味着,它会按照标准的复制步骤移动。这样就允许SQL Server测量发布服务器和分发服务器以及分发服务器和订阅服务器之间的滞后时间。你可以通过点击"插入跟踪器"按钮插入一个跟踪令牌。列表会为每一个订阅显示一行,罗列"发布服务器到分发服务器"和"分发服务器到订阅服务器"的滞后时间。这两者之和也会显示在"总滞后时间"列。可以通过"插入时间"下拉列表查看之前的跟踪信息。
事务订阅模式的"代理"页签显示了快照代理和日志读取器代理。如图9.14所示:

图9.14 事务复制代理
这些信息包括SQL代理作业状态、上次启动时间、持续时间、上一操作。分发代理没有包含在这个页签中。
事务订阅模式的最后一个页签是"警告"。如图9.15所示:

图9.15 事务复制警告
警告可以在"所有订阅"页签的状态列以及左侧发布服务器列表所有层级以一个黄色三角形出现。图9.16就是一个这样的例子:

图9.16 警告订阅
对于事务发布你可以设置两个警告阈值。第一个警告阈值是过期警告。如果订阅超过最大分发保持期(第四篇)指定的百分比,就会显示此订阅的警告。第二个警告当滞后时间超过指定时间限制你将收到一个警告。你可以选择秒、分钟或小时,并且你可以键入任何数值。两个警告都可以通过去掉"已启用"复选框来禁用。
合并发布
如果你点击发布列表中的一个合并发布(MyFirstMergePublication),在右侧就会显示合并订阅模式。如图9.17所示:

图9.17 合并订阅
合并订阅模式有三个页签。它们分别是"所有订阅"、"代理"、"警告"。这里没有跟踪令牌,因为合并复制不是使用事务日志。"所有订阅"页签包含所选合并发布对应的所有订阅(每行对应一个订阅)。你可以查看每一个订阅的状态、连接类型、上次同步、持续时间、性能和传送速率。状态列可以包含这些值:Error,Performance critical,Long-running merge,Expiring soon/Expired,Uninitialized subscription,Retrying failed command,Synchronizing and Not synchronizing.性能列包含四个值:很好、好、Fair、差。
合并订阅模式的第二个页签是"代理"。对于合并复制它只包含快照代理。显示信息和事务复制(9.14)是一样的。
最后一个页签是"警告",如图9.18所示:

图9.18 合并复制警告
有三类不同的警告供你选择接收。一个订阅过期,两个性能相关的。对于性能警告你可以根据订阅服务器是通过拨号连接或LAN连接(这就是图9.18有五行的原因)指定不同的阈值。合并订阅的警告显示方式和事务订阅是一样的。事务订阅警告例子见图9.16.
快照发布
这一系列没有讨论快照复制。然而,你同样可以使用复制监视器获取快照发布和订阅的信息。如果你在左侧选择一个快照发布(MySnapshot),右边就会显示快照复制模式。如图9.19所示:

图9.19 快照发布
三个页签显示的信息和合并发布相似。然而,由于快照复制结构的简单化,可用信息的数量明显减少。在"所有订阅"页签没有性能信息,"警告"页面只有针对订阅过期的警告。
订阅信息
在这一篇有几个地方显示有订阅列表。在订阅列表中,你可以通过使用上下文菜单获取每个订阅的更多信息。图9.20显示了一个事务订阅的上下文菜单:

图9.20 订阅上下文菜单
From here you can mark a subscription to be reinitialized by using an existing or a new snapshot. 你可以查看和修改订阅属性以及代理配置文件。通过点击"查看详细信息"打开一个新对话框:

图9.21 事务订阅明细
事务订阅的详细信息对话框有三个页签,如图9.21所示。前面两个页签包含上次同步信息。第一个显示发布服务器到分发服务器的历史记录,第二个显示分发服务器到订阅服务器的历史记录。第三个页签(图9.22)包含未分发的命令数和分发这些命令需要的估计时间。

图9.22 未分发的命令
对于合并订阅,订阅详细信息对话框只包含"同步历史记录"一个页签,如图9.23所示:

图9.23 合并订阅明细
通过选择合并代理的会话,你可以在下半部分看到所选会话处理的项目。
对于快照订阅,订阅详细信息也只包含一个页签。它和事务订阅中的"分发服务器到订阅服务器的历史记录"页签是一样的。
警报
使用"警告"页签为任何发布启用一个警告,当发布的任一订阅超过设置的阈值就会导致黄色三角形的出现。默认情况下不会执行额外操作。如果你想让SQL Server通知这样的问题,你可以设置一个SQL Server警报。你可以使用几种预定义的警报。你可以单独使用SSMS启用这些,通过"警告"页签的"配置警报"按钮通常更简单。事务发布的"警告"页签见图9.15,点击"配置警报"打开图9.24所示对话框:

图9.24 配置复制警报
选择任意警报点击配置将打开标准的警报对话框,所选警报的所需信息会自动填充。你可以使用这个页面指定SQL Server如何响应以及谁会收到通知。关于如何设置警报的详细内容参考SQL Server代理警报和操作员
总结
这一篇我们介绍了复制监视器。The replication monitor provides a vast amount of information on your entire replication environment.The different dialogs and forms used to convey that information were explained, followed by a brief introduction to SQL Server Alerts.

时间: 2024-10-24 16:27:51

第九篇 Replication:复制监视器的相关文章

第六篇 Replication:合并复制-发布

本篇文章是SQL Server Replication系列的第六篇,详细内容请参考原文. 合并复制,类似于事务复制,包括一个发布服务器,一个分发服务器和一个或多个订阅服务器.每一个发布服务器上可以定义多个发布.你也可以同时在同一台发布服务器上定义合并发布.事务发布和快照发布.同事务复制,每一个发布所包含的项目需要是单一数据库中的对象.不同的发布可以定义在不同的数据库上.一个项目可以被多个发布使用.All publications on a publisher, independent of th

第二篇 Replication:分发服务器的作用

本篇文章是SQL Server Replication系列的第二篇,详细内容请参考原文. 分发服务器是SQL Server复制的核心组件.分发服务器控制并执行数据从一个服务器移动到另一个服务器的进程.它将发布和订阅的信息存储在分发数据库.几个代理促进真实数据的移动.术语在这一系列你会看到"分发服务器","发布服务器","订阅服务器".They always refer to a SQL Server instance together with

第九篇 SQL Server代理了解作业和安全

本篇文章是SQL Server代理系列的第九篇,详细内容请参考原文 在这系列的前几篇,学习了如何在SQL Server代理作业步骤启动外部程序.你可以使用过时的ActiveX系统,运行批处理命令脚本,甚至自己的程序.你最好的选择是使用PowerShell的子系统运行PowerShell脚本.PowerShell脚本将允许你处理几乎所有方面的Windows和SQL Server问题.在这一篇,你会深入到SQL Server代理安全.安全是个令人困惑的话题,它值得一些明确的考虑.这系列有两个不同方面

第九篇 SQL Server安全透明数据加密

本篇文章是SQL Server安全系列的第九篇,详细内容请参考原文. Relational databases are used in an amazing variety of applications with connections from a dizzying array of clients over widely distributed networks,特别是互联网,使得数据几乎向任何人,任何地方开放.数据库可以包含相当大部分的人类知识,包括高度敏感的个人信息和关键数据.数据库的

Python之路【第九篇】:Python操作 RabbitMQ、Redis、Memcache、SQLAlchemy

Python之路[第九篇]:Python操作 RabbitMQ.Redis.Memcache.SQLAlchemy Memcached Memcached 是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载.它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提高动态.数据库驱动网站的速度.Memcached基于一个存储键/值对的hashmap.其守护进程(daemon )是用C写的,但是客户端可以用任何语言来编写,并通过memcached协议与守护进程通信. Memc

第九篇 Integration Services:控制流任务错误

本篇文章是Integration Services系列的第九篇,详细内容请参考原文. 简介在前面三篇文章,我们创建了一个新的SSIS包,学习了脚本任务和优先约束,并检查包的MaxConcurrentExecutables属性.我们检查.演示并测试优先约束赋值为"成功"."完成"."失败"时对工作流的影响.我们学习了SSIS变量和表达式,并将它们应用到优先约束.这一篇,we introduce fault tolerance by examinin

用仿ActionScript的语法来编写html5——第九篇,仿URLLoader读取文件

第九篇,仿URLLoader读取文件 先看看最后的代码 function readFile(){ urlloader = new LURLLoader(); urlloader.addEventListener(LEvent.COMPLETE,readFileOk); urlloader.load("../file/test.txt","text"); } function readFileOk(){ mytxt.text = urlloader.data; } 基

Python之路【第九篇】:Python基础(26)——socket server

socketserver Python之路[第九篇]:Python基础(25)socket模块是单进程的,只能接受一个客户端的连接和请求,只有当该客户端断开的之后才能再接受来自其他客户端的连接和请求.当然我 们也可以通过python的多线程等模块自己写一个可以同时接收多个客户端连接和请求的socket.但是这完全没有必要,因为python标准库已经为 我们内置了一个多线程的socket模块socketserver,我们直接调用就可以了,完全没有必要重复造轮子. 我们只需简单改造一下之前的sock

学习java随笔第九篇:java异常处理

在java中的异常处理和c#中的异常处理是一样的都是用try-catch语句. 基本语法如下 try { //此处是可能出现异常的代码 } catch(Exception e) { //此处是如果发生异常的处理代码 } finally语句 try { //此处是可能出现异常的代码 } catch(Exception e) { //此处是如果发生异常的处理代码 } finally { //此处是肯定被执行的代码 } 抛出异常 使用thows和throw语句抛出异常 public static vo