第9章 SQL Server代理服务9.1 配置数据库邮件9.2 操作员9.3 配置SQL Server代理服务9.4 作业9.5 警报9.6 上机实验习题 在SQL Server 2005中,有一系列的管理维护任务,这些管理维护任务都可以设置为自动运行 。例如数据库的备份,数据库在备份时对资源的占用较大,因此一般是在数据库较空闲时对其进行备份操作,然而数据库空闲的时间大部分都是在晚 上(例如凌晨左右),此时将其配置为自动运行是最佳的选择。 要在数据库中自动运行这些管理维护任务,必须要运行该数据库实例的代理服 务,因为这些管理维护任务是通过代理服务来调度安排的。 SQL Server 代理是一项Microsoft Windows服务, 允许数据库自动执行某些管理任务。SQL Server代理运行作业、监视SQL Server并处理警报。必须先运行SQL Serve r代理服务,本地或多服务器管理作业才会自动运行。 本章详细讲解SQL Server代理服务及相关的作业、警报服务。 本章学习目标: (1) 掌握如何配置SQL Server代理服务。 (2) 掌握数据库邮件的含义,并能正确配置。 (3) 掌握操作员(Operator)的含义,并能正确配置。 (4) 掌握作业(Job)的含义,能按要求创建相应的作业并将其 配置为自动运行。 (5) 掌握通过警报来监控数据库的性能及运转情况。 数据库邮件并不属于SQL Server代理的 内容,但是,如果希望在某项作业自动完成之后能向相应的管理员发送电子邮件以报告该作业的执行情况(例如成功或失败以及作业执行的简要信息 ),则必须启用SQL Server代理的邮件会话功能,而启用的前提是数据库实例中已经完成了对数据库邮件的配置。有关SQL Serv er代理配置的详细内容参见9.3节。9.1 配置数据库邮件 数据库邮件是一种通过 Microsoft SQL Server 2 005数据库引擎发送电子邮件的企业解决方案。通过使用数据库邮件,数据库应用程序可以向用户发送电子邮件。邮件中可以包含查询结果,还可 以包含来自网络中任何资源的文件。数据库邮件旨在实现可靠性、灵活性、安全性和兼容性。 按以下步骤配置数据库邮件: (1) 打开 “SQL Server外围应用配置器”,单击“功能的外围应用配置器”,展开节点 “<数据库实例>”|“Database Eng ine”,此处的<数据库实例>为要启用数据库邮件功能的数据库实例。在默认情况下,数据库实例是没有启用其数据库邮件功能的,因此,若要 使用数据库邮件,则需要通过此步骤先启用该功能。 (2) 单击“数据库邮件”,并勾选“数据库邮件存储过程(E)”,如图9-1所示 ,再单击“确定”按钮。注意,如果未在此处通过“SQL Server外围应用配置器”来启用数据库邮件功能,则在后续配置数据库邮件时仍 有机会通过其向导来启用。 (3) 打开“SQL Server Management Studio”,连接至数据库实例引擎。在对象 资源管理器中,展开节点“<数据库实例>”|“管理”,右击“数据库邮件”,在右键菜单中选择“配置数据库邮件(C)”,进入数据库邮件配 置向导欢迎画面,单击“下一步”,进入图9-2所示的向导。 (4) 如果是第一次配置数据库邮件,则选择“通过执行以下任务来安装数 据库邮件(S)”,然后单击“下一步”按钮,进入图9-3所示的“数据库邮件配置向导”。 图9-1 启用数据库 邮件 图9-2 选择数据库邮件配置项 图9-3 新建数据库邮件配置文件向导 (5) 在“配置文件名(P)”中输入该配置文件的名称,在“说明(S)”中可输入对该配置文件的功用描述,也可不输入。 (6) 单击“添加 ”按钮,进入图9-4所示的“新建数据库邮件帐户”对话框。 对图9-4中各选项说明如下: ? 帐户名(A):此处输入该邮件帐 户的名称。 ? 说明(C):可选项。输入对该邮件帐户的简要说明。 ? 电子邮件地址(E):此处输入发送邮件的电子邮件地址, 数据库邮件将用此邮箱来发送电子邮件。 图9-4 “新建数据库邮件帐户”对话框 ? 显示名称(I):可选项。输入帐户发送的电子 邮件上显示的名称,当对方收到从此电子邮箱发送的信件时,该名称将显示在“发件人”栏。 ? 答复电子邮件(R):可选项。该电子邮件 是答复由此帐户发送的电子邮件所用到的地址。 ? 服务器名称(S):输入此帐户发送电子邮件所用的SMTP服务器的名称或IP地址。 SMTP服务器主要用来发送电子邮件。 ? 使用数据库引擎服务凭据的Windows身份验证(W):此处的服务凭据实际上就是数据库实 例引擎的服务帐户(详见第2章),当连接到SMTP服务器以发送邮件时,将出示该服务帐户的身份给SMTP服务器以请求身份验证。如果SM TP服务器与数据库服务器位于同一个域或林中,并且SMTP服务器需要身份验证,则可以选择此项。 ? 基本身份验证(T):如果数据 库邮件需要身份验证,则在此处输入用户名和密码。一般来说,如果需要通过Internet中的SMTP服务器(例如图9-5中新浪的SMT P服务器)来发送邮件,则该SMTP服务器都是需要身份验证的。 图9-5 设置公共配置文件和专用配置文件 ? 匿名身份验证(Y ):如果SMTP服务器配置为不需要身份验证就可发送邮件,则可选择此项。 如果读者习惯使用邮件客户端软件(例如Outlook、 Foxmail)来收发电子邮件,则对图9-4中的配置就不会陌生。因为使用此类软件都要首先设置邮件配置文件。如果数据库服务器需要使用 Internet中的SMTP服务器来发送电子邮件,则数据库服务器必须要能访问Internet。如果只是做实验,可以在数据库服务器所 处的局域网中,利用Windows Server 2003自带的POP和SMTP服务组建一个小型的邮件服务器。有关POP与SMTP服 务的知识已超越了本书的范畴,读者可查阅Windows帮助文件或有关方面的书籍。 (7) 在图9-4中配置完毕,单击“确定”按钮完 成数据库邮件帐户的创建。该新建的帐户将出现在图9-3中的“SMTP帐户(M)”栏。可以重复第(6)和第(7)步骤以创建多个邮件帐户 。 (8) 在创建了数据库邮件帐户之后,单击图9-3中的“下一步”按钮,进入图9-5所示的对话框。此处可设置公共配置文件和专用 配置文件。数据库中的所有用户都可以使用公共配置文件来发送电子邮件,而只有专门指定的用户才有资格使用专用配置文件来发送电子邮件。设置 完毕,单击“下一步”,并按照提示完成数据库邮件配置文件的创建。 完成数据库邮件的配置之后,应该测试一下该邮件配置文件是否可以正常 发送电子邮件。可按如下步骤测试邮件配置文件: 在SQL Server管理控制台的“对象资源管理器”中右击“数据库邮件”,选择“ 发送测试电子邮件(S)...”,弹出图9-6所示的对话框。 图9-6 发送测试电子邮件 如果已经建立了多个邮件配置文件,则可 以从“数据库邮件配置文件(P)”下拉列表框中选择要测试的邮件配置文件。在“收件人(T)”中输入正确的要接收的电子邮件地址,“主题( S)”和“正文(B)”可按自己意愿输入文字,或保持为默认,然后单击“发送测试电子邮件(S)”按钮,将弹出一对话框,表示邮件已经在排 队处理。 稍过一段时间之后,打开收件人的邮箱,检查是否成功接收到测试邮件。如果未能收到,则表示邮件配置文件可能不正确或网络不通 ,可右击“数据库邮件”,选择“查看数据库邮件日志(V)”以大致了解邮件发送失败的原因,图9-7显示了该日志的一部分。 图9-7 查看数据库邮件日志 在图9-7中单击某个条目,下部将显示其详细信息,如图9-8所示。 如果已经收到测试邮件,则说明邮件配置 文件是能正常工作的。图9-9显示了收到的测试电子邮件。 成功配置了数据库邮件之后,就可以在数据库中使用该配置文件来发送电子邮件 了。在T-SQL语句中可以使用系统存储过程“sp_send_dbmail”来发送邮件,具体语法可参阅SQL Server联机文档。 图9-8 邮件日志详细信息 图9-9 成功接收到的测试电子邮件 上一节讲述数据库邮件时描述了当作业完成后,S QL Server代理可以通过数据库邮件来通知管理员或相关的人员。在这里接收该通知邮件的管理员或相关人员其实就是本节要讲述的操作员 。 操作员是在完成作业或触发警报时可以接收电子通知的人员或组的别名。操作员就像虚拟的一个人物,是一些属性的集合体,这些属性主要 就是操作员的电子邮件、寻呼通知以及NET SEND通知。9.2 操 作 员 可以根据不同的要求来创建具有不同用途的操作员, 例如备份操作员(接收备份完成时的通知信息)、警报操作员(接收当某个警报被触发时的通知信息)等等。当然,操作员本身并没有这样的分类, 但是可以根据不同的用途来对操作员进行相应的命名,从而在创建维护任务时方便地选择要通知的操作员。 创建操作员的步骤如下: (1 ) 打开“SQL Server Management Studio”,连接至数据库实例引擎。在对象资源管理器中展开节点“<数据库实 例>”|“SQL Server代理”,右击“操作员”,在右键菜单中选择“新建操作员(N)...”,弹出图9-10所示的对话框。默认 情况下,“常规”选项处于选中状态。 以下为对图9-10中各选项的说明: ? 名称(N):此处输入操作员的名称。最好选择有意 义的名字,比如备份操作员可以命名为“BackupOperator”等。 ? 已启用(B):此操作员是否处于启用状态。如果操作员 未启用,则该操作员将不会收到任何通知信息。 图9-10 新建操作员“常规”选项 ? 电子邮件名称(M):此处输入该操作员的电 子邮件。如果是以电子邮件的形式通知操作员,则该通知将发送到此处所输入的电子邮件中。 ? ?Net send地址(T):可以通过 Windows信使服务(采用命令NET SEND)来将通知消息发送给操作员,此处输入操作员所使用的计算机的名称或其计算机别名(可以 使用命令NET NAME来为计算机建立别名)。读者可在命令提示符下键入“NET HELP SEND”和“NET HELP NAME ”来了解这两个命令的详细使用方法。注意,Net send命令依赖于Microsoft Windows Messenger服务,若要 成功发送警报,此服务必须在运行SQL Server的计算机和操作员使用的计算机上同时运行。 ? 寻呼电子邮件名称(P)和寻呼值班 计划:寻呼是通过电子邮件实现的。对于寻呼通知,需要提供操作员接收寻呼消息的电子邮件地址。若要设置寻呼通知,则必须在邮件服务器上安装 软件,处理入站邮件并将其转换为寻呼消息。该功能非常类似于时下流行的电子邮件与手机短信相整合的功能,比如,当电子邮箱收到一封新的邮件 时,马上就会收到一条手机短信而被告知。由于要在电子邮件服务器上采用特殊的寻呼软件才可以实现此功能,因此本书暂不讨论通过寻呼电子邮件 来通知操作员的方式。 (2) 配置完图9-10所示的“常规”选项之后,在左边单击“高级”,进入图9-11所示的对话框。 在图 9-11中,如果当某些作业完成或警报被触发时该操作员会收到通知信息,则在“警报列表(L)”栏将列出所有作业或警报(可以选择按作业查 看或按警报查看)。 (3) 配置完毕,单击“确定”按钮完成操作员的创建。 对于已经创建好的操作员,如果要更改其属性,可在“ 对象资源管理器”中选中节点“操作员”,然后在右方“对象资源管理器详细信息”窗口中右击该操作员,选择“属性”以打开其属性页面。该属性 页面与图9-10和图9-11差不多,但在左边将多出一个“历史记录”属性,显示该操作员最近被通知的方式以及时间,如图9-12所示。 图9-11 新建操作员“通知”选项 图9-12 操作员被通知的历史记录 创建操作员也可通过系统存储过程“sp_ad d_operator”来完成,其具体语法可参阅SQL Server联机文档。 本章后续章节将描述如何配置当作业完成或警报发生时 通知相应的操作员。 读者可于此处完成本章上机实验一“创建操作员”,以加深对操作员的理解和认识。 SQL Serve r管理任务(例如作业、警报等)的自动运行依赖于SQL Server代理服务是否处于运行状态,因为这些任务的调度是由SQL Serv er代理来实现的。如果在自动运行管理任务的时刻并没有运行SQL Server代理服务,则该管理任务将不会自动运行。所以,对于需要自 动运行某些管理任务的数据库引擎,必须将其代理服务设置为自动运行。 可以使用SQL Server配置管理器来设置SQL Serv er代理服务为自动运行,可参阅2.1.1节内容。9.3 配置SQL Server代理服务 由于管理任务在运行时很可能要与网络中 的其他计算机相互通信(例如备份作业自动将数据库备份到文件服务器的某个共享文件夹内),而这些任务在与其他计算机通信时出示的身份为SQ L Server代理服务的启动帐户。在默认情况下,SQL Server代理服务的启动帐户为“NT AUTHORITY\Networ k Service”,该帐户不具备与网络中其他计算机通信的能力。在这种情况下,该管理任务将不会成功运行。 解决此问题的办法是将 SQL Server代理服务的登录身份设置为某Windows帐户(域帐户或本机帐户)。可以为SQL Server代理服务专门创建一 个帐户,然后将此帐户设置为SQL Server代理服务的启动帐户。 可按下述操作对SQL Server代理服务的属性进行配置: (1) 通过SQL Server管理控制台连接到SQL Server实例,在“对象资源管理器”中右击“SQL Server代理 ”,然后在右键菜单中选择“属性”以打开其属性页面。当属性页面打开时,其“常规”选项处于选中状态,如图9-13所示。 以下为对图 9-13中关键选项的说明: ? ?SQL Server 意外停止时自动重新启动(Q):如果勾选了此项,则当SQL Server 数据库引擎意外停止时,SQL Server代理将重新启动SQL Server数据库引擎。 图9-13 SQL Server代 理属性常规选项 ? ?SQL Server 代理意外停止时自动重新启动(G):如果勾选了此项,则当SQL Server代理意外停 止时,SQL Server数据库引擎将重新启动SQL Server代理。 ? ?Net send 收件人(N):此处键入操作员 的名称,该操作员负责接收针对SQL Server代理写入日志文件的消息的Net send通知。 (2) 单击“高级”,打开其“ 高级”属性页面,如图9-14所示。 图9-14 SQL Server代理属性高级选项 以下为对图9-14中关键选项的说明: ? 将事件转发到其他服务器(F):勾选此项,可以将SQL Server 代理事件转发到其他服务器。 ? 服务器(S):在此 下拉列表框中选择要转发到的数据库服务器。此下拉列表框将显示已在SQL Server管理控制台中注册的数据库服务器。 ? 事件: “未处理的事件(E)”表明SQL Server代理仅转发警报未对其响应的事件, “所有事件(L)”表明SQL Server代理 将转发所有事件。可以通过“如果事件的严重性不低于(V)”下拉列表框来选择仅转发那些严重级别不低于指定级别的事件。 ? 空闲CPU 条件:可以将作业设置为当CPU空闲时运行。此时SQL Server代理需要知道CPU在何种负荷下便可视为空闲,因而必须要定义CPU 空闲的条件,当CPU满足这些条件时,便可视为空闲。 ? 定义空闲CPU条件(D):勾选此复选框以便定义CPU的空闲条件,否则将 视CPU为永远没有空闲的时候。如果CPU在“并且保持低于此级别(B)”所指定的时间内平均使用率低于“CPU平均使用率低于(G)”处 所指定的百分值,则CPU将被视为空闲状态。如果某些作业被配置为在CPU空闲时运行,则此时这些作业将开始运行。 (3) 单击“警 报系统”,打开其属性页面,如图9-15所示。 图9-15 SQL Server代理属性警报系统选项 以下为对图9-15中关键 选项的说明: ? 启用邮件配置文件(E):如果需要SQL Server代理发送邮件,则应该勾选此项,例如在作业完成时,需要向相 应的操作员发送电子邮件。 ? 邮件系统(Y):设置SQL Server代理要使用的邮件系统。可以选择“数据库邮件”,也可选择“ SQL MAIL”(这是与以前版本兼容的邮件功能,不推荐采用该邮件),建议使用数据库邮件。 ? 邮件配置文件(M):在此下拉列 表框中选择要使用的数据库邮件配置文件。 ? 启用防故障操作员(N):如果当警报被触发或作业完成时,相应的操作员未能成功地接收到 通知信息,则将该通知信息发送给防故障操作员。勾选此项以启用该功能。在“操作员(R)”下拉列表框中选择合适的操作员作为防故障操作员, 并在“通知方式”中勾选通知该防故障操作员的方式(电子邮件、寻呼程序、Net send)。 (4) 单击“作业系统”,打开其“作 业系统”属性页面,如图9-16所示。 图9-16 SQL Server代理属性作业系统选项 以下为对图9-16中关键选项的说 明: ? 关闭超时间隔(秒)(V):指定SQL Server代理在关闭作业之前等待作业完成的秒数。如果在指定间隔之后作业仍在运 行,则SQL Server代理将强制停止该作业。 ? 使用非管理员代理帐户(T):设置SQL Server代理的非管理员代理帐 户。如果作业中某些步骤的类型属于CmdExec(命令行应用程序)或ActiveX脚本,则在默认情况下,这些类型的作业步骤只有当作业 的所有者是固定服务器角色“sysadmin”中的成员时才可以被执行,如果希望在作业的所有者并不属于“sysadmin”的成员的情况 下这些步骤也能运行,则需在此处指派非管理员代理帐户,这些步骤将以该帐户的身份运行。 (5) 单击“连接”,打开其“连接”属性页面 ,如图9-17所示。 以下为对图9-17中关键选项的说明: ? 本地主机服务器别名(A):指定用来连接SQL Server 的本地实例的别名。SQL Server代理必须要连接到相应的数据库实例,才可以启动其自动管理任务,默认情况下SQL Server代 理使用Windows身份验证(可信连接)连接至数据库实例。如果无法使用SQL Server代理的默认连接选项,则为相应的实例定义一 个别名,并在此处指定该别名。 图9-17 SQL Server代理属性连接选项 (6) 单击“历史记录”,打开其“历史记录” 属性页面,如图9-18所示。此处可以查看和修改用于管理Microsoft SQL Server代理服务历史记录日志的设置,可根据需 要酌情进行修改。当所有的选项均按照要求进行配置之后,单击“确定”按钮使其生效。 图9-18 SQL Server代理属性历史记 录选项 作业是一系列由SQL Server代理按顺序执行的指定操作步骤。作业可以执行一系列活动。 作业可以运行重 复任务或那些可计划的任务,它们可以通过生成警报来自动通知用户(操作员)作业状态,从而极大地简化了 SQL Server 管理。 可以手动运行作业,也可以将作业配置为根据计划或响应警报来运行。9.4 作 业9.4.1 作业步骤类型及运行计划 在 SQL Server 2005中,作业类型包括运行T-SQL脚本、CmdExec(命令行应用程序)、Microsoft Activ eX脚本、Integration Services包、Analysis Services命令和查询或复制任务。在一个单独的作业中可 以包含所有这些类型的作业步骤,但作业中的每个步骤中只能属于其中一种类型。 作业中的每个步骤运行的结果要么成功要么失败,可以根据 作业运行的结果来配置接下来应该作何种操作。例如,当作业中的一个步骤成功运行时,是继续运行其后的一个步骤,还是运行明确指定的某个步骤 ;当某个步骤运行失败时,是退出整个作业,还是运行指定的某个步骤。图9-19显示了作业步骤运行流程的一个示例。 图9-19 作业步骤运行流程的一个示例 在图9-19所示的作业中,该作业的第一个步骤为“备份数据库”。如果备份数据库失败,则退出整个作业, 并报告失败;如果备份数据库成功,则按顺序执行其后的一个作业步骤“从外部数据源导入数据”。如果该步骤失败,则转而执行作业步骤“恢复数 据库”;如果该步骤成功,则按顺序执行其后的作业步骤“更新统计信息”。如果执行作业步骤“更新统计信息”失败,则转而执行作业步骤“恢复 数据库”;如果该步骤成功,则按顺序执行其后的作业步骤“备份数据库”。如果备份数据库成功,则执行步骤“报告成功”并退出作业;如果该步 骤失败,则执行步骤“报告失败”并退出作业。在执行作业步骤“恢复数据库”时,不管成功还是失败,都要执行作业步骤“报告失败”并退出整个 作业。 对于数据库中一般的作业来说,其步骤可能没有图9-19所示的那样复杂,但该图比较详细地阐述了作业步骤在执行时的大致流程。 作业可以手动执行,但这种执行方式主要是为了测试作业及其步骤是否能正常执行,通常情况都是将作业配置为按计划自动运行。自动运行作业 的方式有很多种,作业可以配置为连续地运行(例如某些监视作业),或者只要当处理器处于空闲状态时就开始运行,或者按规律重复运行(例如每 小时、每天或每周等),也可以将作业配置为只运行一次,或当某个警报发生时运行以响应该警报。有关警报的内容,可参阅9.5节内容。 如 果要将作业配置为当处理器处于空闲状态时运行,则必须首先定义处理器在何种情况下可算作是空闲状态。可以在SQL Server代理服务的 属性中定义处理器空闲状态,见图9-15。9.4.2 创建并运行作业 可以在SQL Server管理控制台中按如下步骤来创建作 业: (1) 打开SQL Server管理控制台,连接至数据库实例,在对象资源管理器中展开节点“SQL Server代理”。然 后右击节点“作业”,选择“新建作业(N)...”。弹出新建作业对话框,在此对话框中“常规”选项处于默认选中状态,如图9-20所示。 以下为对图9-20中关键选项的说明: ? 名称(N):此处输入该作业的名称。 ? 所有者(O):此处指定该作业的所有 者,可直接输入,也可单击右边的按钮来选择。所有者默认为创建该作业的数据库用户。如果创建作业的数据库用户是固定服务器角色“sysad min”中的成员,则可以将此作业的所有者指派为其他数据库用户。 图9-20 新建作业“常规”选项 ? 类别(C):显示该作 业所属的类别,默认为“未分类(本地)”。 ? 说明(D):此处可输入对该作业的描述性文字。 ? 已启用(E):勾选此项以启 用该作业,否则作业不会自动运行(但仍可手动运行)。 (2) 配置完“常规”选项后,单击“步骤”选项,此处可添加作业步骤。单击下部 的“新建(N)...”按钮,弹出新建作业的对话框,新建作业对话框的“常规”选项处于默认选中状态,如图9-21所示。 以下为对图 9-21中关键选项的说明: ? 步骤名称(N):此处输入该作业步骤的名称。 ? 类型(T):此处指定该作业步骤的类型。 ? 运行身份(R):此处为该作业步骤设置代理帐户。 ? 数据库(D):从此下拉列表框中选择要操作的数据库。 图9-21 新建作业步骤“常规”选项 ? 命令(M):在此文本框中输入要执行的命令,也可通过“打开”按钮来从其他文本框中导入命令。输入命令完 毕,可以单击“分析”按钮以检测这些命令的语法是否正确。 (3) 单击图9-21中的“高级”选项,可以对此作业步骤作进一步的配置, 如图9-22所示。 以下为对图9-22中关键选项的说明: ? 成功时要执行的操作(S):此处表明如果该作业步骤成功执行,则 下一步应该执行怎样的操作,可选的选项有: 转到下一步:表示继续该作业步骤的下一步作业步骤。 退出报告成功的作业:退出该作业 ,并且报告作业已成功执行。 退出报告失败的作业:退出该作业,并且报告作业执行失败。 图9-22 新建作业步骤“高级”选项 ? 重试次数(R):此处设置如果该作业步骤执行失败,则SQL Server代理将尝试重新执行该步骤的次数。 ? 重试间隔(分 钟)(I):此处设置如果要重新尝试执行该作业步骤,则在每次重试之间的间隔时间。 ? 失败时要执行的操作(F):此处表明如果该作 业步骤执行失败,则下一步应该执行怎样的操作,可选的选项与成功时可执行的选项一样,其意义也一样。 ? 输出文件(U):此处输入文 件名路径,作业步骤的输出信息可以保存到此文件中,也可单击右边按钮来定位该输出文件路径。 ? 将输出文件追加到现有文件(F):当 作业步骤将输出信息保存至此文件时,只追加到文件末尾,而不覆盖前面的文件内容。 ? 记录到表(L):将作业步骤的输出记录到msd b数据库的sysjobstepslogs表中。 ? 在历史记录中包含步骤输出(H):如果选择此选项,将在作业的历史记录中包含此 步骤的输出。 ? 作为以下用户运行(H):此处可指定一个数据库用户,该作业步骤将以该用户的身份来执行。注意,如果指定用户身份的 权限不足以执行此步骤,则该作业步骤的执行将失败。只有创建该作业的用户是固定服务器角色“sysadmin”中的成员时,才有资格在此处 进行用户指定操作。 (4) 对图9-22的设置完毕之后,单击“确定”按钮完成该作业步骤的创建。如有必要,可以重复第(2)和第(3 )步骤以创建多个作业步骤。所有已创建的作业步骤可在新建作业的“步骤”选项中查看和修改,如图9-23所示。 以下为对图9-23中 关键选项的说明: ? 作业步骤列表(J):在此列表中列出了该作业所包含的所有步骤。 ? 移动步骤:在作业步骤列表中选中一个 作业步骤之后,单击向上或向下箭头按钮可上移或下移该作业步骤。 图9-23 新建作业“步骤”选项 ? 开始步骤(S):在此下 拉列表框中选择当执行作业时首先从哪一个作业步骤开始执行。默认情况下从步骤编号为“1”的作业步骤开始执行。 ? 新建(N):单击 此按钮可按提示新建一个作业步骤。 ? 插入(I):单击此按钮可在作业步骤列表中所选作业步骤的上方创建新的作业步骤。 ? 编 辑(E):单击此按钮可编辑在作业步骤列表中所选的作业步骤。 ? 删除(D):单击此按钮可删除作业步骤列表中所选的作业步骤。 (5) 对图9-23的步骤配置完毕之后,单击“计划”选项,可以设置该作业以何种方式来自动运行。当新建作业时,此时尚无任何计划,可单 击下方的“新建(N)...”按钮以创建一个新的执行计划,如图9-24所示。设置完毕,单击“确定”按钮,将此计划加入该作业的“计划” 之中,如图9-25所示。同样,可以在下部单击相应的按钮,以对这些作业计划进行“编辑”或“删除”操作。 图9-24 新建作业计划 图9-25 作业的计划列表 (6) 对作业的“计划”配置完毕,单击“警报”按钮,进入“警报”选项配置,如图9-26所示。如 果某些警报被触发时将运行该作业,则这些警报将在此图的“警报列表(L)”中显示。也可通过下面的“添加”按钮来添加合适的警报。有关警报 内容,可参阅9.5节。 (7) 单击“通知”按钮,可以配置当此作业完成时,将以什么方式通知哪些操作员,如图9-27所示。 图 9-26 新建作业“警报”选项 图9-27 新建作业“通知”选项 以下为对图9-27中关键选项的说明: ? 电子邮件( E):勾选此项,表明当作业完成时要以电子邮件的形式通知操作员。可在中间的下拉列表框中选择合适的操作员。在最右侧的下拉列表框中可选择 通知的条件,可选项有: 当作业失败时:如果执行作业时失败,则通知操作员,否则不通知。 当作业成功时:如果执行作业时成功,则 通知操作员,否则不通知。 当作业完成时:不论作业的执行情况如何,只要作业完成,都要通知操作员。 ? 寻呼(P):勾选此项,表 明当作业完成时要以寻呼的形式通知操作员。右方下拉列表框的意义与前述相同。 ? Net send(N):勾选此项,表明当作业完成 时要以Net send的形式通知操作员。右方下拉列表框的意义与前述相同。 ? 写入Windows应用程序事件日志(W):勾选此 项将在作业完成时将条目写入到应用程序事件日志中。可通过右方下拉列表框来选择写入的条件。 ? 自动删除作业(U):勾选此项,将在 作业完成时自动将此作业删除。可通过右方下拉列表框来选择删除的条件。 (8) 单击“目标”,进入目标选项,如图9-28所示。此选项 的意义是指如果配置为“目标为多台服务器(M)”,则该作业将被复制到其他配置为“目标服务器”的数据库服务器中,然后按计划执行。如果没 有配置“主服务器”与“目标服务器”,则该选项将不可用。可以在SQL Server管理控制台中右击“SQL Server代理”,然后 选择“多服务器管理(U)”来配置“主服务器”和“目标服务器”。有关“主服务器”和“目标服务器”的更多内容,可参阅SQL Serve r联机文档。 图9-28 新建作业“目标”选项 (9) 最后单击“确定”按钮,完成新建作业的创建。此时可在对象资源管理器详细 信息窗口中查看刚创建的作业。如果希望测试作业是否可以成功运行,可手动运行该作业。右击该作业,在右键菜单中选择“作业开始步骤(T). ..”,如果作业只有一个步骤,则作业马上开始运行,否则弹出对话框,询问要从作业的哪一个步骤开始运行,如图9-29所示。 图9- 29 选择作业开始执行的步骤 (10) 选择开始执行的步骤,然后单击“启动(S)”按钮,作业开始运行。如果作业选择了在完成时以 Net send的方式通知操作员,则操作员应该收到Net send信息,如图9-30所示。 (11) 如果作业选择了在完成时以 电子邮件的方式通知操作员,则操作员还可以收到电子邮件(当然前提是“SQL Server代理”已经启用了邮件配置文件),如图9-31 所示。注意,如果只选择了当作业失败时才通知操作员,则当作业成功完成时,操作员将不会收到这样的通知。 图9-30 作完成时以Ne t send的方式通知操作员 图9-31 作业完成时以电子邮件的方式通知操作员 另外,也可以通过系统存储过程来创建作业,与创 建作业相关的存储过程有“sp_add_job”、“sp_add_jobschedule”、“sp_add_jobstep”、“sp _add_jobserver”。本书不讨论这些存储过程的使用方法,读者若有兴趣,可参阅SQL Server联机文档(在其索引中键入 这些存储过程名就可搜索到)。 若要修改已创建的作业,可在对象资源管理器中选中节点“作业”,然后在右方的对象资源管理器详细信息窗 口中右击要修改的作业,选择“属性”以打开其属性窗口。此窗口中的选项与前述新建作业窗口的选项是一样的,可按前述对各项的说明进行相应的 修改。 读者可于此处完成本章上机实验二“创建数据库自动备份作业”,以加深对作业的理解和认识。 SQL Server 警报与Windows系统警报的作用及目的其实很相似,都是为了监视某些事件或性能,一旦被监视的事件发生或性能条件达到指定的阈值,则触 发该警报。警报触发时可马上通知管理员,以使管理员能及时了解系统情况并采取合适措施。SQL Server中的警报还可配置为在触发时调 用相应的作业来响应该警报,以自动实现某些处理工作。9.5 警 报例如,可以配置警报来监视数据库事务日志文件的使用情况,一旦 数据库事务日志文件的使用量已达到或超过其总容量的80%,则调用相应的数据库事务日志备份作业以对该数据库进行事务日志备份,对数据库进 行事务日志备份将截断(TRUNCATE)旧的事务日志,从而释放数据库事务日志文件的空间。 下面以创建一个警报的过程来说明有关警报 的知识点。 (1) 打开SQL Server管理控制台,连接至数据库实例,在对象资源管理器中展开节点“SQL Server代理 ”,然后右击节点“警报”,选择“新建警报(N)...”。弹出新建警报对话框,在此对话框中“常规”选项处于默认选中状态,如图9-32 所示。 以下为对图9-32中关键选项的说明: ? 名称(N):此处输入新建警报的名称。 ? 启用(A):是否启用警报。 如果未启用警报,则警报中指定的操作将不会发生。 图9-32 新建警报“常规”选项 ? 类型(T):SQL Server 20 05的警报共有三种类型: SQL Server事件警报:SQL Server代理监视写入Windows应用程序的日志,并将其与 在警报中定义的警报触发条件(例如错误号或严重性)进行比较。如果有相符合的,则该警报被触发。这种警报就是SQL Server事件警报 。 SQL Server性能条件警报:SQL Server代理也监视SQL Server的性能对象计数器,如果发现其值符合警报 中定义的警报触发条件(例如小于、等于或大于该值),则该警报被触发。这种警报就是SQL Server性能条件警报。 WMI事件警 报:该警报用于响应Windows Management Instrumentation(WMI)事件。该警报需要用到WMI查询语言 (WQL)语句。本书暂不讨论WMI事件警报。 如果在“类型(T)”下拉列表框中选择了“SQL Server事件警报”,则可配置以 下选项: ? 数据库名称(B):为该事件警报指定一个数据库,或者指定“所有数据库”,这样不管在哪一个数据库中发生该事件,都会对 消息作出响应。 ? 错误号(R):指定一个错误号,当发生符合该错误号的错误时,将触发该警报。 ? 严重性(V):选择一个错 误的严重程度,当发生符合该严重程度的错误时,将触发该警报。 注意,在选择由“错误号(R)”或“严重性(V)”来触发警报时,如 果符合该“错误号(R)”或“严重性(V)”的错误事件在发生时并没有将此事件写入日志,则该事件将不会触发警报。这可以从系统视图“sy s.messages”中的列“is_event_logged”是否为“1”看出,如果此值为“1”,则表明此事件可以触发警报,否则不 能。可通过在T-SQL查询窗口中运行“select from sys.messages”来查询该视图,如图9-33所示。此图中 的“message_id”列对应着图9-32的“错误号(R)”项,“severity”列对应着图9-32的“严重性(V)”选项。可 通过系统存储过程“sp_addmessage”添加用户自定义错误消息。 图9-33 查阅系统视图“sys.message s”的“is_event_logged”列值 ? 当消息包含以下内容时触发警报(I):若勾选此选项,则当发生事件的消息中包含在“ 消息正文(M)”指定的文本时就会触发该警报。事件的消息是指系统视图“sys.messages”的列“text”中的内容。该选项与“ 错误号(R)”或“严重性(V)”一起组合使用。 如果在“类型(T)”下拉列表框中选择了“SQL Server性能条件警报”,则 可配置以下选项,如图9-34所示。 图9-34 “SQL Server性能条件警报”配置选项 以下为对图9-34中关键选项的 说明: ? 对象(O):选择要监视的性能对象。这些性能对象也已经注册到Windows系统的性能对象中,从“管理工具”的“性能” 中可以获取到。 ? 计数器(C):选择属于在“对象(O)”中指定的对象的计数器。 ? 实例(I):选择要监视的该计数器的实 例。 ? 计数器满足以下条件时触发警报(R):可选项,分为“低于”、“等于”、“高于”。 ? 值(V):此处输入计数器的阈 值。 图9-35 新建警报“响应”选项 (2) 配置完“常规”选项,单击“响应”开始配置“响应”中的选项,如图9-35所示 。 以下为对图9-35中关键选项的说明: ? 执行作业(X):勾选此项表明当此警报被触发时可运行某个作业来响应该警报。可从 下部的下拉列表框中选择已有的作业,也可通过单击按钮“新建作业(J)...”来创建一个作业。单击按钮“查看作业(V)”可查看和修改在 下拉列表框中选中的作业。 ? 通知操作员(N):勾选此项表明当此警报被触发时将通知操作员。可从下部的“操作员列表(P)”中选择 要通知的操作员,并勾选要通知的方式(电子邮件、寻呼程序或Net send)。 (3) 配置完“响应”选项,单击“选项”以配置“ 选项”中的内容,如图9-36所示。 以下为对图9-36中关键选项的说明: ? 警报错误文本发送方式:是否要将触发此警报的错 误的文本消息包含在以下所列的方式中进行发送。例如,如果勾选了“Net send”,则当警报通过Net send的方式通知操作员时, Net send消息中将包含此错误的文本消息。可选项有“电子邮件”、“寻呼程序”、“Net send”。图9-37和图9-38分别 显示了当警报被触发时勾选和未勾选“Net send”警报错误文本发送方式时的发送消息,注意其“说明”中的不同。 图9-36 新 建警报“选项”中的选项 图9-37 勾选“Net send”警报错误文本发送方式时的发送消息 图9-38 未勾选“Net send”警报错误文本发送方式时的发送消息 ? 要发送的其他通知消息(N):在此处键入当警报触发时,要向操作员发送的其他附加提示 消息,如图9-37和图9-38中的“注释”所示。 ? 两次响应之间的延时时间(D):警报有可能被连续触发,例如,如果事务日志使 用百分比超过定义的阈值,则此警报可能连续触发,操作员将连续收到通知,系统可能对此不堪重负,所以最好在此处定义两次响应之间的延时时间 。当上一次警报发生时,至少要经过此处指定的时间方才触发下一次警报。一般来说,此值常设为1分钟。如果做实验,可减小此值。 (4) 配置完成,单击“确定”按钮完成整个警报的创建。可在“对象资源管理器”的节点“警报”下查看所有已经创建好的警报。 若要修改现有警 报,仍然可打开SQL Server管理控制台,连接至数据库实例,在对象资源管理器中展开节点“SQL Server代理”,选中节点“ 警报”,于右方“对象资源管理器详细信息”窗口右击要修改的警报,选择“属性”打开其属性窗口。窗口界面与前述新建警报时一样,可按前述说 明进行修改操作。 此时,修改警报属性页面将多出一个“历史记录”属性,记录了该警报触发的次数以及最近一次触发的时间,如图9-39所 示。勾选“重置计数(R)”并单击“确定”按钮,可将“发生次数(N)”重置为“0”次。 读者可于此处完成本章上机实验三“创建SQ L Server事件警报”和实验四“创建SQL Server性能条件警报”,以加深对数据库警报的理解和认识。 图9-39 警报 的“历史记录” 为了保证数据库在遇到突发事件时能够及时恢复还原,WXD学生管理数据库制定了图9-40所示的数据库备份 计划。9.6 上 机 实 验 图9-40 WXD学生管理数据库备份计划 该备份计划以一周为一个循环单位反复进行。所有 的备份集均以追加的方式添加到“WXD媒体集”中,该媒体集由两个逻辑备份设备构成,分别是“wxd_BAK_1”和“wxd_BAK_2 ”,这两个备份设备分别指向物理文件“C:\WxdDatabaseFiles\ Backup\wxd_BAK_1.bak”和“C:\ WxdDatabaseFiles\Backup \wxd_BAK_2.bak”。这两个备份设备在本书第4章中已经添加到数据库服务器 的默认实例中。 本实验要求将此备份计划以作业的方式自动实现,并在每次作业自动完成时(不论成功还是失败)通知相应的操作员。 1 .实验一:创建操作员 1) 实验要求 本实验有以下要求: 创建一个备份操作员,当数据库备份作业自动完成时将以Net s end的方式通知该操作员。 2) 实验目的 掌握操作员的创建过程以及如何使用操作员。 3) 实验步骤 (1) 以数据 库服务器管理员的身份登录服务器“WestSVR” ,单击“开始”|“运行”,在运行框中输入“cmd”,然后回车进入命令提示符。在命 令提示符中输入“NET SEND WestSVR 测试是否可以正常发送Messenger消息”,图9-41所示,然后回车运行。如果 收到图9-42所示的提示消息,表示可以正常发送Messenger消息,否则打开“开始”|“控制面板”|“管理工具”|“服务”,验证 “Messenger”服务是否已经启动。确保该服务已经启动。 图9-41 测试Messenger服务是否正常运行 图9-42 测试Messenger服务是否正常运行 (2) 打开“SQL Server Management Studio”,连接至数据 库服务器“WestSVR”默认实例引擎。在对象资源管理器中,展开节点“WestSVR”|“SQL Server代理”,右击“操作员 ”,在右键菜单中选择“新建操作员(N)...”,弹出图9-10所示的对话框。默认情况下,“常规”选项处于选中状态。 (3) 在 “名称(N)”栏内输入“BackupAdmin”,在“Net send地址(T)”栏内输入“WestSVR”。 (4) 其余选 项保持为默认,单击“确定”按钮完成该操作员的创建。 (5) 重复第(2)~(4)步骤,重复第(3)步骤时,在“名称(N)”栏内 输入“EventAdmin”以创建一个名为“EventAdmin”的操作员。 (6) 重复第(2)~(4)步骤,重复第(3)步 骤时,在“名称(N)”栏内输入“PerformanceAdmin”以创建一个名为“Performance Admin”的操作员。 2.实验二:创建数据库自动备份作业 1) 实验要求 本实验有以下要求: (1) 创建一个完整数据库备份的作业,该作业 在每周日凌晨1:00时分自动运行。 (2) 创建一个差异数据库备份的作业,该作业在每周一至周六凌晨2:00时分自动运行。 (3) 创建一个事务日志备份的作业,该作业在每周日至周六(相当于每天)凌晨3:00时分自动运行。 (4) 验证以上作业是否可以 正常运行。 2) 实验目的 掌握如何通过创建作业并使其自动运行来完成数据库的自动管理维护任务。 3) 实验步骤 (1 ) 打开SQL Server管理控制台,以数据库管理员身份连接至数据库服务器“WestSVR”的默认实例。单击“新建查询(N).. .”打开一个T-SQL查询窗口,在此查询窗口中输入代码清单9-1中的代码并运行。该代码创建两个名为“Wxd_AutoBack_1” 和“Wxd_AutoBack_2”的逻辑备份设备。 (2) 在对象资源管理器中展开节点“SQL Server代理”(如果“SQL Server代理”未启动,则通过“SQL Server管理控制台”将其启动,并设置为自动启动),然后右击节点“作业”,选择“新建 作业(N)...”。弹出新建作业对话框,在此对话框中“常规”选项处于默认选中状态,如图9-20所示。 (3) 在“名称(N)” 栏内输入“FullBackupWXD”,保持“所有者(O)”和“类别(C)”不变,在“说明(D)”栏内输入“该作业将于每周日凌晨1 :00时分自动运行以对数据库WxdStduent进行完整数据备份”。 (4) 单击“步骤”选项,然后单击下部的“新建(N)... ”按钮,弹出新建作业的对话框,新建作业对话框的“常规”选项处于默认选中状态,如图9-21所示。 (5) 在“步骤名称(N)”中 输入“FullBack”,类型保持为“Transact-SQL脚本(T-SQL)”,无须选择“运行身份(R)”,在“命令(M)”中 输入代码清单9-2中的代码。该段代码对数据库“WxdStudent”进行完全备份。 (6) 单击“高级”选项,在“成功时要执行的 操作(S)”中选择“退出报告成功的作业”,“失败时要执行的操作(F)”中选择“退出报告失败的作业”,然后单击“确定”按钮完成作业步 骤“FullBack”的创建。此时界面回到“新建作业”对话框,在“作业步骤列表(J)”中显示了刚创建的作业步骤“FullBack” 。 (7) 单击“计划”选项,然后单击下方的“新建(N)...”按钮以创建一个新的执行计划。在弹出的“新建作业计划”对话框中, 在“名称(N)”栏内输入“FullBackPlan”,其他设置如图9-43所示。该计划将此作业配置为每周日凌晨1:00时分自动运行 。设置完毕,单击“确定”按钮将此计划加入“计划列表(L)”中。 图9-43 数据库完全备份作业的自动运行时间 (8) 不用配 置“警报”选项,单击“通知”选项。勾选“Net send(N)”,并在右侧的下拉列表框中分别选择操作员“BackupAdmin”和 “当作业完成时”,表示只要当作业完成,就会通过Net send的方式通知操作员“BackupAdmin”。然后单击“确定”按钮,完 成对数据库完全备份计划作业“FullBackupWXD”的创建。 (9) 重复本实验第(2)~(8)步骤以创建自动进行差异备份的 作业。重复第(3)步时,在“名称(N)”栏内输入“DiffBackupWXD ”,在“说明(D)”栏内输入“该作业将于每周一至周六 凌晨2:00时分自动运行以对数据库WxdStudent进行差异数据备份”。重复第(5)步骤时,在“步骤名称(N)”中输入“Diff Back”,在“命令(M)”中输入代码清单9-3中的代码。该段代码对数据库“WxdStudent”进行差异备份。在重复第(7)步骤 时,在“名称(N)”栏内输入“DiffBackPlan”,其他设置如图9-44所示。 图9-44 数据库差异备份作业的自动 运行时间 (10) 重复本实验第(2)~(8)步骤以创建自动进行事务日志备份的作业。重复第(3)步时,在“名称(N)”栏内输入“ LogBackupWXD”,在“说明(D)”栏内输入“该作业将于每周日至周六晚上22:00时分自动运行以对数据库WxdStuden t进行事务日志备份”。重复第(5)步骤时,在“步骤名称(N)”中输入“LogBack”,在“命令(M)”中输入代码清单9-4中的代 码。该段代码对数据库“WxdStudent”进行差异备份。在重复第(7)步骤时,在“名称(N)”栏内输入“LogBackPlan” ,其他设置如图9-45所示。 图9-45 数据库事务日志备份作业的自动运行时间 (11) 现在已经创建好了三个作业,以实现图 9-40所要求的对数据库进行自动备份计划的任务。为了验证这三个作业是否可以成功自动运行,有必要修改一下其自动运行的时间。首先打开数 据库“WxdStudent”的属性,以确认该数据库的恢复模式设置为“完全”,否则如果设置为“简单”将不能成功地进行事务日志数据库备 份。在“对象资源管理器”中选中节点“作业”,然后在“对象资源管理器详细信息”窗格中右击作业“FullBack WXD”,打开其属性 页面,在左侧选中“计划”选项,然后编辑“FullBackPlan”计划,将此计划的“计划类型(S)”选择为“执行一次”,然后将“日 期(D)”和“时间(T)”设置为“当前时间?+5分钟”(注意,此“当前时间”以服务器WestSVR的时钟为准)。按相同操作将作业“ DiffBackWXD”的计划时间设置为“当前时间+7分钟”,将作业“LogBackWXD”的计划时间设置为“当前时间+9分钟”( 上述作业之间的时间差异可根据自身情况调整)。等候5分钟左右的时间,如果陆续收到图9-46所示的系列通知,则证明这三个作业是可以成功 地自动运行的。 (12) 重新将这三个作业的计划时间分别修改为图9-43、图9-44、图9-45所示的时间。 图9-46 三个备份作业自动运行成功时操作员所收到的消息 3.实验三:创建SQL Server事件警报 1) 实验要求 本实验有以下 要求: (1) 首先完成实验一和实验二。 (2) 创建一个SQL Server事件警报,当对恢复模式为“简单”的数据库进行 事务日志备份时所产生的错误会触发该警报。 (3) 警报触发时通知操作员“EventAdmin”。 2) 实验目的 掌握如 何创建SQL Server事件警报,并理解何时触发该类警报。 3) 实验步骤 (1) 打开SQL Server管理控制台, 连接至数据库实例,在对象资源管理器中展开节点“SQL Server代理”。右击节点“警报”,选择“新建警报(N)...”,弹出新建 警报对话框,在此对话框中“常规”选项处于默认选中状态,如图9-32所示。 (2) 在此对话框的“名称(N)”栏中输入“BACKU P事件警报”,保持“类型(T)”为“SQL Server事件警报”,选择“数据库名称(B)”为“WxdStudent”,选中单选按 钮“错误号(R)”并在右侧文本框中输入“3041”。 (3) 单击“响应”,勾选“通知操作员(N)”,并在“操作员列表(P)” 中,勾选操作员“EventAdmin”的“Net send”选项。 (4) 单击“选项”在“警报错误文本发送方式”中勾选“Ne t send”,在“要发送的其他通知消息(N)”文本框中键入“这是模拟BACKUP命令遇到错误时触发的警报消息!?”,定义“两次响 应之间的延迟时间(D)”为1分钟。单击“确定”按钮完成该警报的创建。 (5) 在SQL Server管理控制台的工具栏中单击“新 建查询(N)”打开一个新的查询窗口,输入代码清单9-5所示的T-SQL代码。该段代码首先将数据库“WxdStudent”的恢复模式 设置为“简单”模式,这样在最后一行代码对该数据库进行事务日志备份时将会出现3701的错误(因为不可以对恢复模式为“简单”模式的数据 库进行事务日志备份操作,但注意并非3701错误触发本次警报,而是随之而来的3041错误),从而触发“BACKUP事件警报”警报。 (6) 运行之后将收到图9-47所示的消息提示。注意,如果在收到这样的提示之后马上再次或多次连续运行代码清单9-5的代码,将 不会每次都收到图9-47这样的提示,因为该警报“两次响应之间的延迟时间(D)”被定义为1分钟,因而至少要过了一分钟之后,该警报才可 能再次被触发。 图9-47 “BACKUP事件警报”被触发时收到的警报消息 (7) 在此查询窗口中另起一行,输入代码清单9- 6所示的T-SQL代码并且只运行该段代码(用鼠标高亮选中这段代码,然后单击“执行(X)”按钮)。这段代码将数据库“WxdStude nt”的恢复模式重新设置为“完全”模式。 4.实验四:创建SQL Server性能条件警报 1) 实验要求 实验有以 下要求: (1) 首先完成实验一和实验二。 (2) 创建一个SQL Server性能条件警报,监视数据库“WxdStude nt”事务日志文件使用百分比的情况。 (3) 警报触发时通知操作员“PerformanceAdmin”并运行作业“LogBac kupWXD”。 2) 实验目的 掌握如何创建SQL Server性能条件警报,并理解何时触发该类警报。 3) 实验步骤 (1) 以管理员身份登录数据库服务器,打开“开始”|“控制面板”|“管理工具”|“性能”,连续单击删除按钮“ ”将图中的 计数器清除干净(默认为三次),然后单击添加按钮“ ”,在弹出的对话框中按图9-48所示进行选择。 图9-48 添加性能计 数器 (2) 单击“添加”、“确定”按钮,此时“性能”窗口将显示数据库“WxdStudent”事务日志文件目前的百分比使用情况, 如图9-49所示,记录其平均值为LOGAVG(该图显示的平均值为48,请以实际显示平均值为准)。LOGAVG=__________ __________。 (3) ?SQL Server管理控制台,连接至数据库实例,在对象资源管理器中展开节点“SQL Ser ver代理”,然后右击节点“警报”,选择“新建警报(N)...”。弹出新建警报对话框,在此对话框中“常规”选项处于默认选中状态,如 图9-32所示。 图9-49 数据库“WxdStudent”事务日志文件的百分比使用情况 (4) 在此对话框的“名称(N)” 栏中输入“监视事务日志文件使用百分比的警报”,选择“类型(T)”为“SQL Server性能条件警报”,选择“对象(O)”为“SQ LServer:Databases”,选择“计数器(C)”为“Percent Log Used”,选择“实例(I)”为“WxdSt udent”。在“计数器满足以下条件时触发警报(R)”的下拉列表框中选择“高于”,然后在“值(V)”的文本框中输入“LOGAVG+ 10”的值(例如,如果在第(2)步骤中记录的LOGAVG的值为48,则此处输入58)。 (5) 单击“响应”,勾选“执行作业( X)”,并在下拉列表框中选中作业“LogBackupWXD”。勾选“通知操作员(N)”,并在“操作员列表(P)”中,勾选操作员“P erformanceAdmin”的“Net send”选项。 (6) 单击“选项”,在“警报错误文本发送方式”中勾选“Net s end”,在“要发送的其他通知消息(N)”文本框中键入“这是模拟当数据库事务日志使用百分比超出规定范围时触发的性能条件警报!”,定 义“两次响应之间的延迟时间(D)”为10秒钟。单击“确定”按钮完成该警报的创建。 (7) 在SQL Server管理控制台的工 具栏中单击“新建查询(N)”打开一个新的查询窗口,输入代码清单9-7所示的T-SQL代码。该段代码将反复更改数据库“WxdStud ent”表“Student”中列“StudentName”的值,导致产生大量事务日志,从而使事务日志使用空间百分比迅速增加,最后触 发刚创建的警报“监视事务日志文件使用百分比的警报”。 (8) 执行该段代码,很快将收到图9-50所示的消息。 (9) 单击 “确定”按钮之后,将收到另外一条消息,如图9-51所示。该消息是作业“LockBackupWXD”运行完毕时发送的消息,此作业之所 以运行是因为警报“监视事务日志文件使用百分比的警报”被触发时调用了该作业。 (10) 同时注意图9-49所示的“性能”监视窗口 中,反映事务日志使用百分比的曲线正在发生急剧振荡,如图9-52所示。 (11) 单击SQL Server管理控制台工具栏中的停 止按钮“”以停止代码清单9-7代码的运行。 图9-50 “监视事务日志文件使用百分比的警报”被触发时的消息 图9-51 警 报被触发时调用运行了相应的事务日志备份作业 图9-52 事务日志使用百分比曲线发生急剧振荡 一、选择题( 下面每个选择题有一个或多个正确答案) 1.如何测试数据库邮件配置文件是否可以正常使用? A.在“SQL Server Ma nagement Studio”的“对象资源管理器”中,右击“数据库邮件”,选择“发送测试电子邮件(S)...”,然后按提示操作, 最后检验收件人是否可以成功收到该电子邮件。 B.通过Outlook发送一封电子邮件,检验收件人是否可以成功收到该电子邮件。 习 题 C.通过Foxmail发送一封电子邮件,检验收件人是否可以成功收到该电子邮件。 D.按正确使用系统存储过程“sp _send_dbmail”的方式来使用该存储过程发送一封电子邮件,然后检验收件人是否可以成功收到该电子邮件。 2.有一个用户帐户 名为“LiMei”的管理员,主要负责公司数据库的备份操作,该管理员经常使用的计算机的计算机名为“BackAdminWKS”。如果要 创建一个操作员,以便当备份作业自动完成时能通知LiMei,则该操作员的“Net send地址(T)”属性栏应该输入什么? A.LiMei B.BackAdminWKS C.Net send D.Net send BackAdminWKS 3.在数据库服务器“WestSVR”上已创建了一个备份作业来自动备份数据库“WXD”,当此备份作业完成时(不管是成功还是失败)将以Net send的方式通知操作员“BackAdmin”。但实际上当备份完成时该操作员并没收到通知。经检查该操作员的设置是正确的,数据库服务器“WestSVR”与操作员所在主机的网络连接也是正常的,且数据库服务器“WestSVR”能正常地将通知消息以Net send的方式发送给其他操作员。出现该问题最有可能是以下所列的哪些原因? A.操作员的主机没有运行Microsoft Windows Messenger服务。 B.数据库服务器“WestSVR”没有运行Microsoft Windows Messenger服务。 C.有另外的用户登录到该操作员所在的主机。 D.有另外的用户登录到数据库服务器“WestSVR”。 E.操作员的主机没有运行DNS服务。 4.SQL Server 2005数据库包含下列所列出的哪些作业类型? A.T-SQL脚本。 B.CmdExec(命令行应用程序)。 C.Microsoft ActiveX脚本。 D.Integration Services包。 E.Analysis Services命令。 5.以下有关数据库作业的说法中,正确的是: A.如果作业中的某个步骤运行失败,则该作业将自动退出。 B.如果作业中的某个步骤运行成功,则会继续运行其后的步骤。 C.如果作业中的某个步骤运行失败,可以指定此时是自动退出作业并报告作业失败还是运行某个指定的步骤。 D.如果作业中的某个步骤运行成功,可以指定此时是自动退出作业并报告作业成功还是运行某个指定的步骤。 6.以下有关数据库警报和作业的说法中,正确的是: A.作业的运行可能触发警报。 B.当某警报触发时可以运行某个作业以响应该警报。 C.作业的运行不可能触发警报。 D.作业和警报之间是互不关联的。 7.作业可以有哪些执行方式? A.手动执行。 B.配置为按周期自动执行。 C.配置为只运行一次。 D.当某警报被触发时执行(如果指定了当该警报被触发时运行该作业)。 8.如果要配置当作业中的某个步骤成功运行时退出整个作业,则该步骤应该配置为: A.转到下一步。 B.退出报告成功的作业。 C.退出报告失败的作业。 D.强制退出作业。 9.如果要使某作业在运行完成时(不论成功或失败)要以电子邮件的形式通知某操作员,应该在该作业的“通知”属性中作怎样的配置? A.勾选“电子邮件”,在右方第一个下拉列表框中选择要通知的操作员,在第二个下拉列表框中选择“当作业失败时”。 B.勾选“电子邮件”,在右方第一个下拉列表框中选择要通知的操作员,在第二个下拉列表框中选择“当作业成功时”。 C.勾选“电子邮件”,在右方第一个下拉列表框中选择要通知的操作员,在第二个下拉列表框中选择“当作业完成时”。 D.勾选“电子邮件”,在右方第一个下拉列表框中选择要通知的操作员,在第二个下拉列表框中选择“当作业成功或失败时”。 10.SQL Server 2005数据库警报分为哪几类? A.SQL Server事件警报 B.SQL Server性能条件警报 C.WMI事件警报 D.事务日志警报 二、简答题 1.数据库邮件有什么作用?如何在SQL Server 2005中启用数据库邮件服务? 2.如果当作业完成时要向相应的操作员成功地发送电子邮件以通知该操作员,需要具备哪些先决条件? 3.当警报被触发或作业完成时,如果相应的操作员未能成功地接收到通知信息,此时希望可以将此通知信息通知数据库管理员,应该如何设置以实现此目的? 4.如果数据库服务器的SQL Server代理没有设置为自动启动,则其作业和警报能正常地自动运行吗? |
|