SQL Server代理的阶梯:第1级:设置和概述
第1级:SQL Server代理设置和概述
SQL Server代理是SQL Server的作业调度和警报服务,如果使用得当,它可以大大简化数据库管理员(DBA)的工作负载。
SQL Server Agent的核心是运行批处理作业的工具。“批处理”只是一组“操作”,通常使用Transact-SQL脚本定义。然后,这些可以按照特定的时间表作为作业运行,您可能会选择在少数用户访问系统时; 换句话说,它们被安排为使用SQL Server代理的批处理作业。这些批处理作业可以是从简单的T-SQL任务到跨多个SQL Server实例和多台计算机运行的复杂多系统作业。SQL Server代理还允许您通过电子邮件通知用户,例如,特定批处理作业何时完成,或何时发生错误(级别3中包含通知引擎)。
作为DBA,您很可能会立即使用SQL Server代理在新的SQL Server部署上调度作业。例如,您的第一份工作可能是备份系统数据库,并使用邮件警报来告知您备份作业是完成还是失败。后续作业可能包括设置和安排用户数据库的备份,索引维护操作(重建或重组)等。如果您正在管理一个相当简单的SQL Server系统,那么您将启用维护计划作业调度,例如,使用SSMS数据库维护计划向导。
本文是Stairway中探索SQL Server Agent功能的第一个层次,并讨论如何充分利用SQL Server Agent。它将介绍SQL Server Agent的大部分组件和功能,展示如何运行服务,并演示如何从SSMS创建和运行简单的批处理作业。然后,后续级别将深入钻取每个主要组件,包括如何使用SMO,PowerShell和Transact-SQL使用SQL Server代理。
本系列将重点介绍SQL Server 2005,SQL Server 2008和SQL Server 2008 R2; 但是,本系列中的大部分信息也适用于SQL Server 2000。
让SQL Server代理运行
在SQL Server的初始设置期间,默认情况下不启用SQL Server代理,因此使用SQL Server代理的第一个简单步骤是运行SQL Server代理服务。
将代理设置为使用SQL Server自动启动
若要将SQL Server代理设置为自动启动,请打开“Microsoft SQL Server 2008”中的SQL Server配置管理器实用程序 “配置工具”文件夹。您需要成为本地Windows管理员(或与其中一个最好的朋友)才能运行此实用程序。
启动后,该实用程序应自动连接到本地计算机。单击树中的“SQL Server服务”选项。在右侧面板中,您应该看到已安装的SQL Server服务的列表。其中一个应该是“SQL Server代理(instancename)”,其中instancename是安装SQL Server时使用的实例的名称,如果您正在配置默认实例,则是“MSSQLSERVER”。如果启动模式已设置为自动,很好,则在设置期间已正确配置。如果没有,请双击SQL Server代理,单击出现的属性对话框中的“服务”选项卡,然后单击“ 开始模式”旁边的下拉列表。选择自动,应用(见图1.1,看看它应该是什么样的)。现在SQL Server代理将在服务器重新启动时自动启动,并且SQL Server正在运行。如果由于某种原因SQL Server代理未运行,请立即启动该服务。
图1.1 - SQL Server代理的SQL Server配置管理器
服务帐户选择
您需要确保根据计划对SQL Server代理执行的操作配置相应的服务帐户。如果您继续操作,则表示您位于SQL Server代理属性的“服务”选项卡上。单击“ 登录”选项卡。对于SQL Server代理的基本操作,您可以使用内置帐户,例如网络服务(服务帐户将设置为初始安装SQL Server期间选择的任何内容)。图2显示了选择对话框。只需从“内置帐户”下的列表中选择“网络服务”即可。如果您打算让SQL Server代理连接到远程计算机(例如,复制文件或管理多个系统),那么您将需要切换到使用域用户帐户(该帐户所涵盖的“此帐户”选项 - 如图1.2); 可能是专门为此目的而创建的。这是您需要从域管理员请求的内容。从域管理员的角度来看,您将需要一个普通的用户帐户。无论哪种情况,请选择正确的服务帐户,并在进行任何更改后,您需要选择“重新启动”按钮才能使新更改生效。完成后,单击“确定”按钮以完成SQL Server代理服务的配置。您可以在此处详细了解服务帐户选择http://msdn.microsoft.com/en-us/library/cc281953.aspx。
图1.2 - SQL Server代理的服务帐户选择
创建你的第一份工作
现在SQL Server代理正在运行,您可以创建第一个作业。通过演示,我们将设置一个工作来执行一个关键的DBA任务,即备份系统数据库,这样就可以创建一个自动化的工作,而不必记住手动备份这些数据库。那会为你做的。
作业
作业是单个逻辑任务(如备份数据库)的核心容器。该任务将包含一个或多个作业步骤。作业可能包括通知(例如,如果作业失败,请向DBA发送电子邮件)、计划(希望作业运行时),甚至可能在多个系统上运行。然而,对于我们的第一个备份工作,我们将保持简单。
要创建作业,请打开SSMS并连接到SQL Server实例。展开“SQL Server代理”节点,然后右键单击“作业”。选择创建新作业的选项(“新建作业 ...”),如图1.3所示。
图1.3 - 启动新建作业对话框
作业有许多组件,如图1.4所示。
图1.4 - 新建作业对话框
我们将该工作命名为“备份主数据库”。这将是用于在SSMS GUI或PowerShell中引用作业的名称。工作类别可以是组织工作的有用方式,但是第一份工作设置类别并不重要。您将学习如何在更高级别指定类别。在“描述”框中,写下一些可以帮助您记住创建此作业的原因以及它应该执行的操作。请记住,其他人可能必须稍后管理此系统,因为他们没有创建这项工作,他们不知道它应该完成什么以及它是否至关重要。
完成所有这些后,你基本上完成了创建作业'shell',它只是你在新作业对话框中看到的所有组件的'shell容器'。作业最重要的部分是其他选项卡上的组件。
工作步骤
SQL Server代理中的作业至少由一个作业步骤组成。当大多数人认为SQL Server工作执行某些工作时,他们的真正含义是工作步骤。作业步骤由您希望执行的操作类型定义,并包括运行以下作业子系统的功能:
- ActiveX
- 操作系统(CMDExec)
- 电源外壳
- 各种复制任务
- SQL Server Analysis Services(SSAS)命令(即XML / A)
- SQL Server Analysis Services(SSAS)查询(MDX)
- SQL Server Integration Services(SSIS)包(SQL Server 2000中的DTS包)
- Transact-SQL脚本(T-SQL)
对于大多数SQL Server DBA,大多数作业将使用最后一种类型的作业步骤T-SQL。作业可以作为作业所有者运行,也可以使用其他安全上下文,具体取决于作业所有者的权限和代理的配置。下一级将详细介绍作业步骤和子系统。
正如您在SSMS GUI中看到的,控制作业步骤的选项卡简称为“步骤”。现在点击它,我们将创建一个工作步骤。单击对话框底部的“新建”按钮,将启动“新建作业步骤”对话框(参见图1.5)。
图1.5 - 新建工作步骤
给作业步骤一个有用的名称 - 在我们的例子中,作业名称和步骤名称可能相同 - “备份主数据库”。作业步骤类型将是T-SQL,因为我们将使用简单的BACKUP命令进行数据库备份。您现在可以忽略“运行方式”,因为默认情况下我们将作为作业所有者(即您)运行作业步骤。默认情况下,数据库正确设置为我们正在做的事情,即在master中工作。
对于命令本身,您可以打开文件,或复制并粘贴您在查询窗口中编写的一些有效的T-SQL。为了简单起见,我们正在做一个简单的备份命令。如果未在C驱动器上安装SQL Server,则需要将文件位置更改为适用于计算机的位置。我正在展示的示例来自SQL Server的简单虚拟机安装,所有这些都在一个硬盘上。您不应该在这样的单个硬盘驱动器上看到生产SQL Server!
-
BACKUP DATABASE master
-
TO DISK='C:\Program Files\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQL\Backup\master.bak'
-
WITH INIT
完成后,它应如图1.6所示。单击“确定”以创建作业步骤。
图1.6 - 完成的工作步骤
工作时间表
作业计划控制何时实际启动作业。有四种类型的工作时间表:
- SQL Server代理启动时自动启动
- 每当CPU空闲时启动
- 定期
- 一次
大多数作业计划都是Recurring类型(例如,周日晚上7点每周运行一次备份)。计划是SQL Server代理中的单独对象,并且计划可以连接到多个作业。
对于我们的工作,我们希望每周备份数据库。因此,单击“计划”选项卡,然后选择“新建”以创建新的作业计划,如图1.7所示。将作业计划命名为实用的(因为它们可以在作业之间共享)。我将这个时间表称为“每周系统备份”。幸运的是,这个页面上的默认值会很好!我们将每周运行一次,周日,午夜。在为计划命名后单击“确定”,然后再次单击“确定”以完成作业创建。
图1.7 - 新的工作时间表
运行刚刚创建的作业
既然我们已经创建了备份作业,那么运行该作业以验证我们是否正确完成了所有操作是个好主意。即使我们将此作业安排为每周运行一次,我们也可以按需手动运行作业。在SSMS中,在作业文件夹下,您现在应该看到您的工作。右键单击“作业”,然后选择“作业开始步骤 ...”,如图1.8所示。作业将运行,现在您的主数据库已备份。
图1.8 - 在SSMS中启动作业
下一步是什么?
在接下来的几个级别中,我们将更深入地探索SQL Server代理的每个区域,以及作业和警报可以极大地增强SQL Server系统功能并使您的生活更轻松的具体示例。下一级将侧重于创建和配置作业步骤,了解各种作业子系统以及作业步骤安全性。
本文是SQL Server Agent的父阶梯Stairway的一部分