【译】第一篇 SQL Server代理概述
本篇文章是SQL Server代理系列的第一篇,详细内容请参考原文。
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 SSMS中执行作业
下一篇
在接下来的几篇我们将更深入探讨SQL Server代理的各个区域,以及具体的实例的情况下,作业和警报可以大大提高你的SQL服务器系统的能力,使你的生活更轻松。下一篇将重点放在创建和配置的作业步骤,了解各种作业的子系统,作业步骤安全。
【译】第一篇 SQL Server代理概述的更多相关文章
- 第一篇 SQL Server代理概述
		
本篇文章是SQL Server代理系列的第一篇,详细内容请参考原文. SQL Server代理是SQL Server的作业调度和告警服务,如果使用得当,它可以大大简化DBA的工作量.SQL Serve ...
 - 【译】第一篇 SQL Server安全概述
		
本篇文章是SQL Server安全系列的第一篇,详细内容请参考原文. Relational databases are used in an amazing variety of applicatio ...
 - 第一篇 SQL Server安全概述
		
本篇文章是SQL Server安全系列的第一篇,详细内容请参考原文. Relational databases are used in an amazing variety of applicatio ...
 - 【译】第九篇 SQL Server代理了解作业和安全
		
本篇文章是SQL Server代理系列的第九篇,详细内容请参考原文 在这一系列的上一篇,学习了如何在SQL Server代理作业步骤启动外部程序.你可以使用过时的ActiveX系统,运行批处理命令脚本 ...
 - 【译】第八篇 SQL Server代理使用外部程序
		
本篇文章是SQL Server代理系列的第八篇,详细内容请参考原文 在这一系列的上一篇,学习了如何用SQL Server代理作业活动监视器监控作业活动和查看作业历史记录.在实时监控和管理SQL Ser ...
 - 【译】第六篇 SQL Server代理深入作业步骤工作流
		
本篇文章是SQL Server代理系列的第六篇,详细内容请参考原文. 正如这一系列的前几篇所述,SQL Server代理作业是由一系列的作业步骤组成,每个步骤由一个独立的类型去执行.每个作业步骤在技术 ...
 - 【译】第五篇 SQL Server代理理解代理错误日志
		
本篇文章是SQL Server代理系列的第五篇,详细内容请参考原文. 正如这一系列的前几篇所述,SQL Server代理作业是由一系列的作业步骤组成,每个步骤由一个独立的类型去执行.在第四篇中我们看到 ...
 - 【译】第十篇 SQL Server代理使用代理帐户
		
本篇文章是SQL Server代理系列的第十篇,详细内容请参考原文 在这一系列的上一篇,你查看了msdb库下用于授权访问SQL Server代理的安全角色.这些角色包括SQLAgentUserRole ...
 - 第九篇 SQL Server代理了解作业和安全
		
本篇文章是SQL Server代理系列的第九篇,详细内容请参考原文 在这一系列的上一篇,学习了如何在SQL Server代理作业步骤启动外部程序.你可以使用过时的ActiveX系统,运行批处理命令脚本 ...
 
随机推荐
- ASP.NET存储Session的StateServer
			
由于公司要对服务器做个负载均衡,所以Web项目在两台前端服务器(web1.web2)各部署了一份.但是在项目中会用到session.当一开始在web1上登陆后,由于web1之后负载可能会变大,就有可能 ...
 - SpringMVC 应知应会
			
springMVC 是表现层技术,可以用来代替 struts2,下面是简略图:主要是处理器和视图,只有这两个部分需要编写代码. springMVC 三大组件:处理器映射器,处理器适配器,视图解析器. ...
 - postgis_LayerTransform
			
[转] postgis_LayerTransform 一个在postgis中结合中国国情,批量对数据进行加偏到百度坐标,高德谷歌的火星坐标,或者逆向纠偏 安装: 在postgresql-postgis ...
 - excel copy cell & batch operation & checkbox
			
excel copy cell & batch operation & checkbox excel 右下角,下拉/双击 (复制 cell) 注意: 不是选择列
 - vue ui components
			
vue ui components h_ui https://www.npmjs.com/~hs_ui https://www.npmjs.com/package/h_ui_beta https:// ...
 - 第210天:node、nvm、npm和gulp的安装和使用详解
			
一.node 1.什么是node? 它不是JS文件,也不是JS框架,而是Server side JavaScript runtime,当服务端的一个JS文件运行时,会被NODE拦截,在NODE中运行J ...
 - 第192天:js---Date对象属性和方法总结
			
Date对象构造函数重载方法 一.第一种重载方法---基本 当前时间 //构造函数 - 第一种重载方法:基本 当前时间 console.log('构造函数 - 第一种重载方法:基本 当前时间') da ...
 - Underscore.js工具库
			
Underscore 是一个 JavaScript 工具库,它提供了一整套函数式编程的实用功能,但是没有扩展任何 JavaScript 内置对象. 他解决了这个问题:“如果我面对一个空白的 HTML ...
 - h5端提示下载app
			
// app下载提示 if (!sessionStorage.getItem("appDownloadTipClosed") && isAndroidOrIphon ...
 - HDU4646_Laser Beam
			
题目是这样的,一个等边三角形,三边都是有镜子组成的. 现在要你从一个点射入一条光线,问你如果要求光线在三角形里面反射n次然后从入点射出来的话,入射的方向可能有多少种? 这.....其实不难.关键是要搞 ...