• 楼梯SQL Server代理- 2级:工作步骤和子系统


     楼梯SQL Server代理- 2级:工作步骤和子系统

    原文链接:http://www.sqlservercentral.com/articles/SQL+Agent/Job+Steps+and+Subsystems/72268/

    By Richard Waymire2017/10/11 (first published: 2011/02/17)

    该系列

    本文是楼梯系列的一部分:楼梯SQL Server代理

    SQL Server代理是任何实时数据库系统的核心。 使用的代理有很多并不总是很明显,所以系统的知识总是有用的,开发人员和dba。 理查德Waymire提供了一个简单的解释,它的许多用途。

    SQL Server代理工作是由一个或多个工作的一系列步骤。 工作步骤是分配给一个特定的工作子系统,它标识的工作步骤是要执行的工作。 每个工作步骤运行在一个单独的安全上下文,尽管每个工作也有一个主人,决定谁可以修改工作。 本文将关注的工作步骤和子系统组成一个SQL服务器代理工作。

    快速审查工作

    最好的方法认为SQL Server代理工作是一个容器,将一组其他组件,需要执行一个给定的任务。 一份工作的主要成分是工作步骤,时间表,警报和通知。

    当创建一个工作,一个所有者分配给的工作。 所一级,默认情况下,业主将创建工作的用户(无论是transact - sql,通过sp_add_job系统存储过程或使用SQL Server Management Studio)。 大部分的设施的SQL服务器代理假设你是一个系统管理员服务器角色的成员。 如果你是,那么你或任何其他系统管理员可以修改工作一旦创建角色成员。 如果你想要那些角色成员能够修改工作,那么你应该改变工作老板是用户的登录。 请注意,系统管理员成员可以改变任何工作,不管工作的所有权。

    工作的步骤

    1级提到过,一个SQL服务器代理工作是由至少一个作业步骤。 当大多数人认为的工作执行一些工作,他们真正的意思是SQL Server是一个工作的步骤。 工作步骤是定义的类型您想要执行的行动,和每个工作步骤将执行下列工作子系统之一:

    • ActiveX
    • 操作系统(CMDExec)
    • Powershell
    • 各种各样的复制任务
    • SQL Server Analysis Services(介绍)命令(例如XML /)
    • SQL Server Analysis Services(介绍)查询(MDX)
    • SQL Server集成服务(ssi)包(DTS包在SQL Server 2000)
    • transact - sql脚本(t - sql)

    让我们创建一个工作,和必要的工作步骤,备份主数据库。 创建一个新的工作,我叫我“备份主”如图1所示。

    图1——创建一个新的工作

    现在单击步骤选项卡来查看工作步骤,并单击New…弹出新的作业步对话框(图2)。

    图2——创建一个新的工作步骤

    我填写这份工作中的步骤执行完整性检查主数据库在我们开始之前的备份。 我所能做的一切在一个步骤,但想告诉你步骤之间的工作流程。 我已经给我的步骤名称、“检查DB的完整性,并将类型设置为transact - sql。 数据库环境的主人。 我把一个简单的命令在文本框:

    DBCC CHECKDB

    一些解释为了使这个对话框。 类型下拉选择SQL Server代理子系统。 可能的子系统将在下面描述。 没有安全代理占transact - sql的工作步骤,所以作业步骤将运行在老板的背景下工作。 运行安全代理帐户启用工作一步一个不同的用户的安全上下文,和通常用于工作不归系统管理员角色的成员。

    您选择的工作子系统将改变其他对话框的内容。 transact - sql的工作步骤,为您提供一个简单的文本框输入你的transact - sql,正如我在这里完成。 每个工作步骤相关联的可能有一个不同的子系统。

    接下来,单击高级选项卡为新工作步骤。 您将看到如图3所示的屏幕。 成功的行动定义作业步骤成功完成后会发生什么。 默认选择是去下一个步骤,这意味着如果有多个步骤的工作,这个工作,执行下一步。 如果你点击下拉,你会看到其他选项,包括退出工作(无论是成功或失败的通知),或跳跃到另一个步骤。 注意,最后一个选项,跳跃到另一个步骤,才出现你至少在第二步的工作。

    图3 -高级选项的新工作步骤

    如果一个步骤失败由于某种原因,你可以选择的数量,可以尝试重试作业步骤。 你也可以指定一个延迟(分钟)之间尝试成功完成的工作步骤。 下面是失败的行为(即工作步骤是无法完成或结束在一个错误代码)。 选项是一样的成功,与一个不同的默认(与您预期的一样)。

    因为这是一个transact - sql批量作业步骤类型,你可以有任何transact - sql命令的输出被记录到一个输出文件(就像在sqlcmd - o选项)。 你也可以一个表(记录结果sysjobstepslogs在MSDB表)。

    单击OK,然后单击新添加第二步工作。 假设第一步没有生成一个错误,下一个备份的工作步骤数据库。 从我的系统的命令(如图4所示):

    备份数据库(主)磁盘=
    N 'C: Program Files  Microsoft SQL Server  MSSQL10_50.MSSQLSERVER 该备份  master.bak '
    与初始化

    图4,第二个工作步骤备份主数据库

    因为这是工作的结束,点击先进的选项卡并选择成功行动为“辞职报告成功。 “就是这样,您应该能够点击OK,看看完成的工作步骤,如图5所示。

    图5 -完成的工作

    现在单击OK完成定义工作,运行工作。 当你点击运行工作,注意,因为有多个步骤你现在问这一步你想开始工作。 运行作业的第一步(如图6),并观察工作的流程第一步成功运行,然后移动到第二个和最后一步的工作。

    图6 -开始工作步骤(选择步骤1)

    一旦成功完成,工作是标志着成功,退出(如图7)。

    图7——这项工作已经成功运行

    工作子系统

    有七个主要工作子系统,您将使用。 这个数字不包括复制子系统,因为他们是一个特殊情况,通常这些工作步骤和工作是由复制组件而不是DBA。 我们将推迟讨论的三个分析服务子系统为下一个水平,他们有几个独特的考虑。

    transact - sql脚本(t - sql)

    transact - sql子系统很简单,可能是最常见的类型的工作步骤将创建。 它允许您运行transact - sql(但不是sqlcmd扩展transact - SQL)针对本地SQL Server的实例,这个实例的隶属于SQL Server代理。 注意,与分析服务子系统,你只能连接到本地SQL Server实例。 还要注意,没有transact - sql代理能力,所以t - sql的工作步骤总是运行在安全上下文中工作的所有者。

    ActiveX脚本

    ActiveX子系统允许您运行VBScript、Jscript或其他自定义脚本语言(在理论上)。 在默认情况下,脚本将运行在安全上下文中的SQL Server代理服务帐户。 如果你精通VBScript这可能是一个方便的子系统,但是子系统已经弃用的SQL Server 2008,您应该使用PowerShell子系统。

    操作系统(CmdExec)

    CmdExec子系统允许您运行操作系统命令(如果你有一个命令提示符打开)。 的命令将运行SQL Server代理服务帐户的安全上下文中。 这里要记住的重要的事情(和ActiveX子系统)是没有用户能够点击或接受任何提示,所以确保你的脚本将运行没有用户干预。

    PowerShell

    PowerShell子系统允许您运行Windows PowerShell脚本1.0或2.0兼容。 子系统与其他脚本,该脚本将在默认情况下在安全上下文中运行的SQL Server代理服务帐户。 PowerShell是非常强大的,你应该认真调查PowerShell的增长你的知识。 PowerShell将允许您连接到远程系统,这是一个在限制transact - SQL子系统的连接到远程的SQL服务器的实例。

    下次

    正如您可以看到的,SQL Server代理工作步骤问题的核心工作内容。 许多不同的子系统,每个给你不同的功能。 在这楼梯的下一步,我将检查代理功能,提高安全工作步骤,以及其他SQL代理子系统进行分析服务。

    
    
  • 相关阅读:
    vue中使用v-on绑定事件中,获取$event.currentTarget,日志打印为null
    问题记录:events.js:183 throw er; // Unhandled 'error' event Error: listen EADDRINUSE 127.0.0.1:8888
    跨域通信——多窗口通信
    fiddler抓包工具-常用功能1
    git使用手册
    webpack.config.js配置文件
    Loader转换器
    webpack安装使用
    <el-table>里的数据已经修改了,但是页面不更新
    <el-onload>使用属性file-list时返回数据里必须含url字段
  • 原文地址:https://www.cnblogs.com/1-1-1-1-2/p/8243111.html
Copyright © 2020-2023  润新知