第一篇 SQL Server代理概述

本系列文章来源于sqlservercentral,详细内容请参考原文



SQL Server代理是SQL Server的作业调度和告警服务,如果使用得当,它可以大大简化DBA的工作量。
SQL Server代理的核心是运行批量作业的能力。“批量”可以简单的理解成“一系列的动作”,经常是TSQL脚本。它们可以以作业的形式在特定的调度运行,这个调度你可以选择在只有少量用户访问系统的时间点/段。换而言之,可以使用SQL Server代理排定批量作业。批量作业可以是平常的T-SQL任务,也可以是运行于多个数据库实例和多台计算机之间复杂的、多系统的作业。SQL Server代理同样允许通知用户,例如当作业完成,或当作业出错时通过电子邮件通知用户(通知引擎详见第三篇)。
作业一名DBA,很有可能,你能快速的利用SQL Server代理在一台新的数据库服务器部署作业。例如,你会首先创建一个系统数据库的备份作业,通过邮件提醒你备份作业是否成功或失败。随后的工作可能会包括创建和调度业务数据库备份,索引维护(重建或重整),等等。如果你是管理一个相对简单的数据库系统,那么你可以使用SSMS数据库维护计划向导启用维修计划作业调度。
这篇文章是本系列的第一篇,主要是介绍SQL Server代理的特征,讨论如何使用SQL Server代理的优势。它将主要介绍SQL Server代理的组件和功能,展示如何启动服务,演示如何从SSMS创建并运行一个简单的作业。随后章节会深入到各主要组件,包括SQL Server代理如何使用SMO、PowerShell以及Transact-SQL。
这一系列主要聚焦于SQL Server 2005、SQL Server 2008、and 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"->"配置工具"文件夹。你需要是本地Windows管理员(或是其成员)去启动。
一旦启动,配置管理器会自动连接到本地,点击左侧树上的SQL Server服务,在右侧面板你可以看到所安装的SQL Server服务列表。应该有一个叫做"SQL Server代理(实例名)",实例名是你安装数据库时所设定的名称,或者是默认的"MSSQLSEVER"。如果启动模式已经是自动,非常好,在安装过程中已经正确配置好。否则,双击数据SQL Server代理,在弹出的代理属性点击"服务"标签,然后启动模式项展开下拉列表,选择自动,最后点击应用(如图1.1为你应该看到的界面)。当服务重启的时候SQL Server代理会自动启动。如果由于某些原因SQL Server代理没有运行,现在就启动服务。
图1.1 SQL Server代理启动模式配置
服务帐户选择
你需要确保你有一个合适的服务帐户来配置基于你将用SQL Server代理所做的操作。如果你遵循下面操作,在SQL Server代理属性页面,点击"登录"标签,作业基础操作,你可以使用内置帐户,比如Network Service(这个服务帐户可以被设置无论在初始化安装时是否被选择)。图1.2展示了选择效果。在内置账户列表下只需选择Network Service。如果你打算用SQL Server代理连接远程计算机(例如拷贝文件,或管理多个系统),那么你应该切换成域用户帐户(图1.2中这个帐户被下拉列表遮住了),域用户可能是专门为这一目的所创建的。你可能需要从域管理员那请求点什么,从域管理员的角度来看,你需要一个普通用户帐户。无论如何,选择正确的服务帐户,一旦你做出更改,就必需点击重新启动按钮才能让更改生效。一旦你完成了这些,点击确定按钮来完成SQL Server代理服务的配置。你可以从链接查看更多的服务帐户信息。


图1.2 SQL Server代理服务帐户的选择
创建第一个作业
现在SQL Server代理已经运行,你可以创建第一个作业。通过示范,我们要建立一个作业来执行重要的DBA任务,备份系统数据库,不需手动备份那些数据库,你可以创建一个自动化的作业去做。
作业
一个作业是一个逻辑任务的核心,例如备份数据库。一项任务可以包含一个或多个作业步骤,作业可以包含通知(例如作业失败邮件通知DBA)、调度(你想让作业什么时候运行)、甚至可以运行在多个系统上。作为第一个备份作业,我们尽量让它简单。
为了创建这个作业,打开SSMS然后连接数据库实例。展开SQL Server代理结点,然后右击作业。选择创建新作业,如图1.3所示
图1.3 展开创建作业对话框
一个作业有一系列的组件,如1.4所示
图1.4 新建作业对话框
我们给这个作业取名"备份master数据库"。作业类别能够很有用的管理你的作业,但对于第一个作业没必要设定一个类别。你将后在后面的章节学习如何设置类别。在说明窗体,写一点描述性的文字帮助你记忆为什么创建这个作业以及这个作业的用途。记住以后别人要管理这个系统的,因为他们没有创建这些作业,他们不知道作业的用途以及作业是否重要。
做完这一切,你基本上完成了创建工作的“壳”,仅仅只是新作业对话框看到的组件之一.最重要的部分是在其他标签组件。
作业步骤
SQL Server代理中的一个作业至少包含一个步骤。当大多数人说作业能做一些工作时,实际意味是一个作业步骤。一个作业步骤可以根据需求定义成下面类型之一:
->ActiveX 脚本
->操作系统(CMDExec)
->PowerShell
->复制系列任务
->SQL Server Analysis Services (SSAS) 命令
->SQL Server Analysis Services (SSAS) 查询
->SQL Server Integration Services (SSIS) 包
->Transact-SQL 脚本 (T-SQL)
对于大多数DBA,大部分的作业会选择最后一种类型,T-SQL。作业可以由作业所有者执行,或者另一个安全上下文,根据作业所有者和配置代理的权限。作业步骤和子系统在下一章节会详细讲述。
如你在SSMS图形界面看到,控制作业步骤的就叫做“步骤”。点击步骤,我们可以创建一个作业步骤, 在对话框的底部点击新建,弹出一个新建作业步骤对话框(图1.5)
图1.5 新建作业步骤
给作业步骤设定一个名称,在我们的例子中,作业名称和步骤名称是相同的——备份master数据库。作业步骤类型为T-SQL,我们将用一个简单的backup命令来备份数据。你可以忽略“运行身份”,默认会以所有者身份运行作业。
对于命令,你可以打开一个文件,或复制粘贴在你写的一些有效的T-SQL查询窗口。为了保持简单,我们做一个简单的备份命令。如果你的数据库不是安装在C盘,你需要修改文件存放路径。

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空闲时启动
->重复执行
->执行一次
大多数作业计划会使用重复执行(例如每周日下午7点运行我的备份作业)。计划在SQL Server代理中是独立的对象,一个计划可以对应多个作业。
对于我们的作业,我们想每周备份数据库。因此,点击计划标签,选择创建一个新作业计划,如图1.7。给作业计划设定一个名称(作业之间可以共享)。我叫这个计划为"每周系统备份"。幸运的是,对话框默认设置就很好。我们将在每周的周日午夜执行作业。点击确定当你命名好计划,再点击确定以完成整个作业的创建。


图1.7 新建作业计划
执行作业
现在我们已经创建了备份作业,是时候运行作业以检验我们所做的是否正确。尽管我们设定每周运行这个作业 ,我们依然能根据需求手动运行作业。在SSMS,作业文件夹,你可以看到你的作业,右击作业,选择"作业开始步骤",如图1.8所示,这个作业将会执行,然后master数据库将会备份。


图1.8 SMSS中执行作业
下一篇
在接下来的几篇我们将更深入探讨SQL Server代理的各个区域,以及具体的实例的情况下,工作和警报可以大大提高你的SQL服务器系统的能力,使你的生活更轻松。下一篇将重点放在创建和配置的作业步骤,了解各种作业的子系统,作业步骤安全。

时间: 2024-08-11 05:52:32

第一篇 SQL Server代理概述的相关文章

第一篇 SQL Server安全概述

本篇文章是SQL Server安全系列的第一篇,详细内容请参考原文. 面对当今复杂的攻击SQL Server有你需要的一切来保护你的服务器和数据.但在你能有效地使用这些安全功能之前,你需要了解你所面临的威胁和一些基本的安全概念.本系列的第一篇将讲解基础知识,可以充分利用SQL Server中的安全功能而不是浪费时间在不能保护你的数据被威胁的功能上.Relational databases are used in an amazing variety of applications with co

第五篇 SQL Server代理理解代理错误日志

本篇文章是SQL Server代理系列的第五篇,详细内容请参考原文. 正如这一系列的前几篇所述,SQL Server代理作业是由一系列的作业步骤组成,每个步骤由一个独立的类型去执行.在第四篇中我们看到,SQL Server代理可以通过数据库邮件发送通知.如果有什么不正确的,你必须查看数据库邮件日志.在这一篇,你将学习如何理解和查看所有相关的SQL Server代理错误日志.你将回顾最常见的错误信息,掌握哪些信息需要你采取行动,哪些信息只是单纯的信息而已.一旦你理解错误日志,在处理SQL Serv

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

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

第六篇 SQL Server代理深入作业步骤工作流

本篇文章是SQL Server代理系列的第六篇,详细内容请参考原文. 正如这一系列的前几篇所述,SQL Server代理作业是由一系列的作业步骤组成,每个步骤由一个独立的类型去执行.每个作业步骤在技术上是独立的,但是你可以创建工作流贯穿作业中的各个步骤.在这篇文章中,你将学习如何在作业步骤中使用工作流来改变要执行的操作,单一作业有多个条件可以处理.你也会接触作业步骤安全和作业子系统的更多细节.SQL Server代理步骤如第二篇所述,SQL Server代理作业包含一个或多个作业步骤.每一个作业

第八篇 SQL Server代理使用外部程序

本篇文章是SQL Server代理系列的第八篇,详细内容请参考原文 在这系列的前几篇,学习了如何用SQL Server代理作业活动监视器监控作业活动和查看作业历史记录.在实时监控和管理SQL Server代理作业上,作业活动监视器是一个很好的工具.第八篇,你会看到SQL Server代理的另一个功能——the ability to shell out to the operating system and run programs outside of the SQL Server enviro

第十篇 SQL Server代理使用代理帐户

本篇文章是SQL Server代理系列的第十篇,详细内容请参考原文 在这系列的前几篇,你查看了msdb库下用于授权访问SQL Server代理的安全角色.这些角色包括SQLAgentUserRole.SQLAgentReaderRole和SQLAgentOperatorRole.每个角色授予用户一定的权限来使用SQL Server代理,而不必是sysadmin服务器角色的成员.为完全管理控制SQL Server代理,你仍然需要sysadmin角色的成员.此外,你回顾了SQL Server代理服务

第四篇 SQL Server代理配置数据库邮件

本篇文章是SQL Server代理系列的第四篇,详细内容请参考原文. 正如这一系列的前几篇所述,SQL Server代理作业是由一系列的作业步骤组成,每个步骤由一个独立的类型去执行.SQL Server代理同样提供创建警报,能够以通知的形式将消息发送给设定的操作员.这些通知可以通过数据库邮件发送,数据库邮件是内置在SQL Server和SQL Server代理能够发送和接收电子邮件.在这一篇,你将学习如何配置数据库邮件发送和接收操作,以及一些基本的数据库邮件故障排除步骤.数据库邮件的简要概述在S

第二篇 SQL Server代理作业步骤和子系统

本篇文章是SQL Server代理系列的第二篇,详细内容请参考原文. SQL Server代理作业由一系列的一个或多个作业步骤组成.一个作业步骤分配给一个特定的作业子系统(确定作业步骤去完成的工作).每个作业步骤运行于一个单独的安全上下文,尽管每个作业有一个所有者来决定谁可以修改作业.本篇主要关注组成SQL Server代理的作业步骤和子系统.快速回顾作业理解SQL Server代理作业的最佳方式是把相关联的 需要完成给定任务 的组件放在一个容器中.作业最主要的组件有作业步骤.计划.警告和通知.

第七篇 SQL Server代理作业活动监视器

本篇文章是SQL Server代理系列的第七篇,详细内容请参考原文 在这系列的前几篇,你创建并配置SQL Server代理作业.每个作业有一个或多个步骤,可能包含大量的工作流.在这篇文章中,将查看作业活动监视器.作业活动监视器是系统管理工具来运行工作,查看作业历史记录,并启用/禁用作业.本文同样会回顾一些作业活动监视器调用的存储过程,你可以直接调用过程做你自己的自定义任务监控.SQL Server代理作业活动监视器SQL Server代理作业活动监视器的主要机制是监视作业运行,以及查看代理已运行