读书笔记(十四)——作业的知识点与注意事项

1、 SQL Server 代理中包含很多的类别,有作业、警报、操作员、代理等,作业属于其中的一个类别

1、 用自动化数据备份来介绍作业的具体运用规则

①用命令符启用sqlserveragent

②添加作业的类别,明确进行作业的任务

EXEC msdb.dbo.sp_add_category

@class = ‘JOB‘--添加对象的类别,如:作业、报警

,@name = ‘ct_药房管理系统_Maintain‘; ---设置类别的名字

③添加作业(包括名字、任务,所属的类别)

EXEC msdb.dbo.sp_add_job

@job_name = ‘jb_药房管理系统_FullBackup_Weekly‘ --为作业命名

,@description = ‘Full Backup job for 药房管理系统every week(end).‘ ---作业的任务描述,每周自动备份更新

,@category_name = ‘ct_药房管理系统_Maintain‘; ---作业所属的类别

④为作业添加具体的任务描述,就是作业计划(jobschedule)

DECLARE

@StartDate INT = CONVERT(CHAR(8),GETDATE(),112)

,@EndDate INT = CONVERT(CHAR(8),DATEADD(year,1,GETDATE()),112)

,@StartTime INT = 220000;

EXEC msdb.dbo.sp_add_jobschedule

@job_name = ‘jb_药房管理系统_FullBackup_Weekly‘ --作业名字

,@name = ‘jc_药房管理系统_FullBackup_Sunday2200‘ ---作业计划的名字,为数据库自动每周星期日22:00备份

,@freq_type = 8 --对应每周的频率类型,具体见表格

,@freq_interval = 1 --对应星期天的频率类型,具体见表格

,@freq_recurrence_factor = 1--作业计划间隔一周

,@active_start_date = @StartDate

,@active_end_date = @EndDate

,@active_start_time = @StartTime

,@active_end_time = @StartTime;

频率类型表

频率间隔表

⑤为作业制定服务器,作业将会在sqlserveragent启用后生效

    EXEC msdb.dbo.sp_add_jobserver
             @job_name = ‘jb_药房管理系统_FullBackup_Weekly‘                    ,@server_name [email protected]@SERVERNAME;    --默认为local服务器 ,也可以指定现有目标的服务器名称        

⑥测试作业执行(将电脑的时间往下调整至周日)

    RESTORE HEADERONLY
         FROM jb_药房管理系统_FullBackup_Weekly

3、 邮件通知,数据库是否备份

数据的自动备份系统应该存在提示,因此就可以利用邮件来实现这一个功能,下面就介绍利用邮件通识相关人员系统是否完整备份,备份是否成功。SQL就自带有邮件通知的功能

①启用邮件

    EXEC sp_configure ‘SHOW ADVANCED OPTIONS‘,1;
    RECONFIGURE;
    EXEC sp_configure ‘DATABASE MAIL XPs‘;
    EXEC sp_configure ‘DATABASE MAIL XPs‘,1;
    RECONFIGURE;

②添加配置文件

EXEC msdb.dbo.sysmail_add_profile_sp
        @profile_name = ‘mp_药房管理系统_Dba‘
        ,@description = ‘Database mail profile for 药房管理系统database administrator.‘;        

③添加邮件的账号

EXEC msdb.dbo.sysmail_add_account_sp
        @account_name = ‘ma_药房管理系统_Dba‘
        ,@description = ‘Database mail account for 药房管理系统database administrator.‘
        ,@email_address = ‘[email protected]药房管理系统.com‘
        ,@display_name = ‘药房管理系统DBA‘
        ,@mailserver_name = ‘127.0.0.1‘    ---SMTP发送地址
        ,@mailserver_type=‘SMTP‘
        ,@port = 25
        ,@use_default_credentials = 1;        ---默认使用Windows验证方式

④将邮件的账号和配置文件相互关联

EXEC msdb.dbo.sysmail_add_profileaccount_sp

@profile_name = ‘mp_药房管理系统_Dba‘

,@account_name = ‘ma_药房管理系统_Dba‘

,@sequence_number = 1;

EXEC msdb.dbo.sysmail_configure_sp

    ‘AccountRetryAttempts‘, ‘3‘ ;

EXEC msdb.dbo.sysmail_configure_sp

    ‘AccountRetryDelay‘, ‘5‘ ;

⑤发送邮件

EXEC msdb.dbo.sp_send_dbmail
        @profile_name = ‘mp_药房管理系统_Dba‘
        ,@recipients = ‘[email protected]药房管理系统.com‘
        ,@subject = ‘TestMail_2‘
        ,@body = ‘Another test mail for 药房管理系统database administrator.‘;            

4、 系统尽管已经通知是否备份,但是有时候系统备份也会失败,因此最好能将备分具体的情况一同发送到邮箱。系统自动备份成功与否就要有明确的判断,用四个on来判断成功还是失败的分支,看到底执行哪一个步骤。

①添加计划步骤

EXEC msdb.dbo.sp_add_jobstep
    @job_name = ‘jb_药房管理系统_FullBackup_Weekly‘
    ,@step_name = ‘js_药房管理系统_FullBackup‘
    ,@step_id = 1
    ,@database_name = ‘master‘
    ,@subsystem = ‘TSQL‘
    ,@command =
        ‘EXEC 药房管理系统.dbo.usp_BackupFull‘
    ,@retry_attempts = 3
    ,@retry_interval = 0
    ,@on_success_action = 4
    ,@on_success_step_id = 2
    ,@on_fail_action = 4
    ,@on_fail_step_id = 3;
EXEC msdb.dbo.sp_add_jobstep
    @job_name = ‘jb_药房管理系统_FullBackup_Weekly‘
    ,@step_name = ‘js_药房管理系统_MailAfterFullBkOk‘
    ,@step_id = 2
    ,@database_name = ‘master‘
    ,@subsystem = ‘TSQL‘
    ,@command =
        ‘EXEC 药房管理系统..usp_execMailAfterBkOk;‘
    ,@retry_attempts = 3
    ,@retry_interval = 0;    

②发送邮件,将结果以附件的形式发送至邮箱

EXEC msdb.dbo.sp_add_jobstep
    @job_name = ‘jb_药房管理系统_FullBackup_Weekly‘
    ,@step_name = ‘js_药房管理系统_MailAfterFullBkFail‘
    ,@step_id = 3
    ,@database_name = ‘master‘
    ,@subsystem = ‘TSQL‘
    ,@command =
        ‘EXEC 药房管理系统..usp_MailAfterBkFail;‘
    ,@retry_attempts = 3
    ,@retry_interval = 0;            

    EXEC msdb.dbo.sp_send_dbmail
        @profile_name = ‘mp_药房管理系统_Dba‘
        ,@recipients = ‘[email protected]药房管理系统.com‘
        ,@subject = ‘TestMail_2‘
        ,@body = ‘This mail contains the query result as attach.‘    ---以附件的形式发送
        ,@query=
            ‘SELECT TOP 100
                    *
                FROM
                    master.dbo.spt_values‘
        ,@attach_query_result_as_file = 1;            

原文地址:https://www.cnblogs.com/Angular-JS/p/8127714.html

时间: 2024-11-06 19:08:26

读书笔记(十四)——作业的知识点与注意事项的相关文章

How tomcat works 读书笔记十四 服务器组件和服务组件

之前的项目还是有些问题的,例如 1 只能有一个连接器,只能处理http请求,无法添加另外一个连接器用来处理https. 2 对容器的关闭只能是粗暴的关闭Bootstrap. 服务器组件 org.apache.catalina.Server接口的实例用来表示Catalina的整个servlet引擎. 我们使用Server就是因为,它用一种优雅的方式来启动/关闭整个系统. 下面是启动和停止机制是如何工作的.当服务器启动的时候,它启动它内部的所有组件.然后无限期的等待关闭命令,如果你想要关闭系统,发送

Java读书笔记十四(java中的抽象类)

前言 在java中,有时候需要对类的行为进行提取,因此也就有了抽象类和接口的概念,这篇博客,小编来剖一下java中的抽象类和接口.  抽象方法和抽象类 抽象方法和抽象类的规则如下: 1.抽象类必须使用abstract修饰符来修饰,抽象方法也必须使用abstract修饰符来修饰,抽线方法不能有方法体 2.抽象类不能被实例化,无法使用new关键字来调用抽象类的构造器创建抽象类的实例.即使抽象类里不可包含抽象方法,这个抽象类也不能被创建实例. 3.抽象类可以包含成员变量.方法(普通方法和抽象方法都可以

《Java编程那点事儿》读书笔记(四)

String 1.toString:显示对象内容时系统自动调用的方法. public class TOSTRING { public String toString(){ return "this is toString method"; } } TOSTRING t = new TOSTRING(); System.out.println(t); 2.Math Math.函数 3.String 1)char charAt(int n)  //获得字符串索引为1的字符 String a

swift 笔记 (十四) —— 构造过程

构造过程 为了生成类.结构体.枚举等的实例,而做的准备过程,叫做构造过程. 为了这个过程,我们通常会定义一个方法来完成,这个方法叫做构造器.当然它的逆过程,叫做析构器,用于在实例被释放前做一些清理工作以及一此自定义化的处理. 为存储型属性设置初始值 类和结构体在生成实例那一刻,必须为所有的属性赋以特定的初始值. 要么在定义存储型属性的时候直接给个初始值,否则就必须在构造器里面指定一个初始值. 上面说的这两种情况,都不会触发存储型属性的监听者行为(property observer). struc

图解HTTP读书笔记(十)

图解HTTP读书笔记(十) Web的攻击技术 HTTP协议本身并不存在安全性问题,因此协议本身几乎不会成为攻击对象.应用HTTP协议的服务器和客户端,以及运行在服务器上的Web应用资源才是攻击目标. 在客户端即可篡改请求 在Web应用中,从浏览器那接收到的HTTP请求的全部内容,都可以在客户端自由的变更.篡改. 在HTTP请求报文内加载攻击代码,就能发起对Web应用的攻击.通过URL查询字段或表单.HTTP首部,Cookie等途径把攻击代码传入,若这时Web应用存在安全漏洞,那内部信息就会遭到窃

Swift学习笔记十四:构造(Initialization)

类和结构体在实例创建时,必须为所有存储型属性设置合适的初始值.存储型属性的值不能处于一个未知的状态. 你可以在构造器中为存储型属性赋初值,也可以在定义属性时为其设置默认值.以下章节将详细介绍这两种方法. 注意: 当你为存储型属性设置默认值或者在构造器中为其赋值时,它们的值是被直接设置的,不会触发任何属性观测器(property observers). 一.基本语法 class Human{ var name :String init(){ name = "human" } init(n

《世界如此险恶,你要内心强大》读书笔记(四)

(1)人为什么怕死 [1] 害怕死亡的痛苦 死亡代表了最难忍受的肉体和精神痛苦,而且是不可逆的,一死,就活不过来了. [2] 害怕死亡这一最终结局 死亡是对一切可能性的终结,是不可穿透的永恒的黑暗. 在茫茫宇宙中,只是在一个偶然的时间作为一粒尘埃出现.但无论自身多么渺小,在他看来, 他的存在就是一个世界.如果他的存在被死亡抹去,那就抹去了他的一切.在这层意义上,对死亡 的恐惧与对世间的无尽眷恋息息相关.当一个人想到,如果他死去,他将彻底与所拥有的财产.所 享受的生活.所爱的人.所做的事业.所享受

laravel3学习笔记(十四)

原作者博客:ieqi.net ==================================================================================================== 运行时配置 在 Laravel3 中很多地方我们都可以看到“约定大于配置”的影子,我本人也很喜欢这种工程哲学尤其是在框架领域,当然这并不能代替所有的配置.我们知道 Laravel3 中,主要配置都写在 application/config 文件夹下,在应用逻辑中,往往

《深入理解Android2》读书笔记(四)

接上篇<深入理解Android2>读书笔记(三) ActivityManagerService(AMS) 1.AMS由ActivityManagerNative(AMN)类派生,并实现Watchdog.Monitor和BatteryStatsImpl.BatteryCallback接口.而AMN由Binder派生,实现了IActivityManager接口. 2.客户端使用ActivityManager类.由于AMS是系统核心服务,很多API不能开放供客户端使用,因此设计者没有让Activit

读书笔记(四)——傅雷家书,谆谆教诲

<傅雷家书>看了好久,反复读了好多次,细细品读,仿佛有一位未曾谋面的长者,在我的耳边谆谆教诲,时时训诫,甚为感动. 在我看来<傅雷家书>对于高中生,大学生,或者毕业不久的职场新人来说都是一本不可多得的好书. 因为在书中,通过一封封情真意切的教诲,教你怎么对待事业.怎么对待爱人.怎么理财等等很多方面,当然这种态度可能不符合你处世的态度,但是至少可以看到一个作家家长是怎么教育孩子.而且我个人认为其中很多处世的方式对我来说很长见识,对我也来说很重要,很好. 摘抄部分句子作为读书笔记: 1