初识SQL Server代理&作业
当前位置:点晴教程→知识管理交流
→『 技术文档交流 』
一、前言别人写的程序在数据库中生成了一些表,并且会不停更新表中数据。 现在有个需求,定期根据表中的数据做一些运算,然后重新生成一张表。我将新表的表名、字段给第三方使用。 关键是,我无法修改别人的代码,好在我可以登录该系统所运行电脑的数据库。 经过一番搜索后,我发现了触发器和SQL Server代理这两种工具。进一步分析后,觉得SQL Server代理可能更符合我的需求。 ❗注意 本文不讨论多SQL Server实例的情况。 由于使用场景较简单,本文只简述SQL Server代理及其组件,有关SQL Server代理安全性等拓展内容不做介绍。 二、SQL Server代理SQL Server代理是一种微软Windows服务,用于执行一些预先安排好的任务,这些任务在SQL Server中称为jobs(作业)。 1. SQL Server代理的好处
2. SQL Server代理组件
⭐2.1. 作业 Jobs & 作业步骤 Job Steps 作业是SQL Server代理执行的一系列指定操作(这个一系列很重要,作业有点类似操作的容器,里面放了许多操作,所以是管理单元,而不是真正的执行单元。而这一个个操作,就是下文的作业步骤)。使用作业可以定义各种任务,并配置它们的执行次数以及监视它们的执行状态与执行结果。作业可以在本地服务器上运行,也可以在远程服务器上运行。 可以用以下几种方式来执行作业:
作业中的每个操作都称为 job step(作业步骤)。 作业步骤是作业在数据库或服务器上执行的操作。每个作业必须至少有一个作业步骤(不然,空有一个容器,啥也做不了)。 作业步骤可以是:
每个作业步骤都运行在专门的安全上下文(环境)中。对于使用T-SQL的作业步骤,使用EXECUTE AS语句为作业步骤设置安全上下文。其他类型的作业步骤,使用代理账户为作业步骤设置安全上下文。 ⭐2.2. 计划 Schedules 计划(表)(schedule,其实在计算机中,我更喜欢叫它调度)指定了作业何时运行。在一个计划上可以运行多个作业,一个作业也可以被多个计划应用。计划可以定义作业运行的时间条件,如:
2.3. 警报 Alerts 警报(alert) 是对特定事件的自动响应。事件可以是启动的作业或达到阈值的系统资源。你可以定义警报发生的条件。 警报可以响应以下条件:
警报可以执行以下操作:
2.4. 操作员 Operators 操作员(operator) 为负责维护SQL Server实例的个人定义了联系方式。在一些企业中,操作员职责被分配到了个人(责任到人)。尤其在有多个服务器的企业中,许多人可以分担操作员的责任。操作员不包含安全信息,也不定义安全主体。 SQL Server能通过以下方式通知操作员:
❗注意 如要使用网络发送通知,必须在SQL Server代理所在的计算机上启动Windows Messenger服务。 如果发现寻呼机和网络发送的功能无法使用,请不要惊讶。因为微软早就计划从SQL Server代理中删除这两个功能了。 若要使用电子邮件或传呼机向操作员发送通知,必须将SQL Server代理配置为使用数据库邮件。可以将操作员定义成一组个人的别名。这样,该别名的所有成员就不会同时被验证。 ⭐3. 相关工作 要使SQL Server管理更加自动化,通常要做以下工作:
❗注意 对于SQL Server默认实例,SQL Server服务的名称为SQLSERVERAGENT。 对于命名了的实例,SQL Server代理服务名为SQLAgent$instancename。 在对代理有了一定了解后,再介绍一个例子,在代理中创建一个作业,并添加一些脚本代码。 三、创建并执行作业本节讲解如何在SQL Server Management Studio(SSMS)中创建一个SQL Server代理作业,并在计划中运行它。(创建作业(包括其他组件,计划、警报等等)的方式有很多,可以用SSMS图形化操作,可以用Transact-SQL脚本操作,也可以用SQL Server Management Objects操作,这边介绍SSMS图形化操作,该方式比较通用直观) 1. 创建作业 在SSMS中创建一个作业,通常经过以下几步:
4.在新建作业对话框中的常规页面,修改作业的常规属性。(一般改个名称即可) 5.在步骤页面,组织作业步骤。 这边着重介绍下T-SQL类型的作业步骤。创建T-SQL作业步骤时,你必须:
你也可以选一个现有的T-SQL文件作为作业步骤的命令。 T-SQL作业步骤不使用SQL Server代理作为代理人。取而代之,作业步骤作为作业步骤的所有者运行(?)。 6.在计划页面,组织作业计划。 你可以选取一个已有的计划或新建一个计划。当与计划绑定后,该作业就会按计划的时间执行。可见,作业和计划是独立的,作业定义了任务内容,计划定义了执行时间。 7.在警报页面,组织作业警报。 8.在通知页面,设置代理在作业完成时执行的操作。 9.在目标页面,管理作业目标服务器。 10.配置完成, 点击确定。 2. 执行作业 在作业的常规页面中,有个启用选项: 勾选启用后,给作业绑定计划或警报,达到条件后(达到计划指定时间或触发警报),作业就会执行。 四、结语SQL Server代理在实际开发中作用很大,许多操作都可以放到SQL Server代理中执行,很多时候能事半功倍。 本文对SQL Server代理的基本组件和创建作业绑定计划的简单使用场景进行介绍。实际使用中的重头戏应该是脚本的编写。 原文链接:https://blog.csdn.net/BadAyase/article/details/127241129 该文章在 2025/9/9 16:56:05 编辑过 |
关键字查询
相关文章
正在查询... |