学习笔记——作业的知识点与注意事项

Posted 我是墩

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了学习笔记——作业的知识点与注意事项相关的知识,希望对你有一定的参考价值。

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

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

①用命令符启用sqlserveragent

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

1 EXEC msdb.dbo.sp_add_category
2 
3 @class = \'JOB\'--添加对象的类别,如:作业、报警
4 
5 ,@name = \'ct_药房管理系统_Maintain\'; ---设置类别的名字

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

1 EXEC msdb.dbo.sp_add_job
2 
3 @job_name = \'jb_药房管理系统_FullBackup_Weekly\' --为作业命名
4 
5 ,@description = \'Full Backup job for 药房管理系统every week(end).\' ---作业的任务描述,每周自动备份更新
6 
7 ,@category_name = \'ct_药房管理系统_Maintain\'; ---作业所属的类别

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

 1 DECLARE
 2 
 3 @StartDate INT = CONVERT(CHAR(8),GETDATE(),112)
 4 
 5 ,@EndDate INT = CONVERT(CHAR(8),DATEADD(year,1,GETDATE()),112)
 6 
 7 ,@StartTime INT = 220000;
 8 
 9  
10 
11 EXEC msdb.dbo.sp_add_jobschedule
12 
13 @job_name = \'jb_药房管理系统_FullBackup_Weekly\' --作业名字
14 
15 ,@name = \'jc_药房管理系统_FullBackup_Sunday2200\' ---作业计划的名字,为数据库自动每周星期日22:00备份
16 
17 ,@freq_type = 8 --对应每周的频率类型,具体见表格
18 
19 ,@freq_interval = 1 --对应星期天的频率类型,具体见表格
20 
21 ,@freq_recurrence_factor = 1--作业计划间隔一周
22 
23 ,@active_start_date = @StartDate
24 
25 ,@active_end_date = @EndDate
26 
27 ,@active_start_time = @StartTime
28 
29 ,@active_end_time = @StartTime;

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

 1 EXEC msdb.dbo.sp_add_jobserver

2 @job_name = \'jb_药房管理系统_FullBackup_Weekly\'

3 ,@server_name =@@SERVERNAME; --默认为local服务器 ,也可以指定现有目标的服务器名称  

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

 1 RESTORE HEADERONLY

2 FROM jb_药房管理系统_FullBackup_Weekly 

 

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

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

①启用邮件

1     EXEC sp_configure \'SHOW ADVANCED OPTIONS\',1;                
2     RECONFIGURE;                
3     EXEC sp_configure \'DATABASE MAIL XPs\';                
4     EXEC sp_configure \'DATABASE MAIL XPs\',1;                
5     RECONFIGURE;

②添加配置文件

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

③添加邮件的账号

1 EXEC msdb.dbo.sysmail_add_account_sp                
2         @account_name = \'ma_药房管理系统_Dba\'            
3         ,@description = \'Database mail account for 药房管理系统database administrator.\'            
4         ,@email_address = \'dba@药房管理系统.com\'            
5         ,@display_name = \'药房管理系统DBA\'            
6         ,@mailserver_name = \'127.0.0.1\'    ---SMTP发送地址        
7         ,@mailserver_type=\'SMTP\'            
8         ,@port = 25            
9         ,@use_default_credentials = 1;        ---默认使用Windows验证方式

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

 1 EXEC msdb.dbo.sysmail_add_profileaccount_sp
 2 
 3 @profile_name = \'mp_药房管理系统_Dba\'
 4 
 5 ,@account_name = \'ma_药房管理系统_Dba\'
 6 
 7 ,@sequence_number = 1;
 8 
 9  
10 
11 EXEC msdb.dbo.sysmail_configure_sp
12 
13     \'AccountRetryAttempts\', \'3\' ;
14 
15  
16 
17 EXEC msdb.dbo.sysmail_configure_sp
18 
19     \'AccountRetryDelay\', \'5\' ;

⑤发送邮件

1 EXEC msdb.dbo.sp_send_dbmail                
2         @profile_name = \'mp_药房管理系统_Dba\'            
3         ,@recipients = \'dba@药房管理系统.com\'            
4         ,@subject = \'TestMail_2\'            
5         ,@body = \'Another test mail for 药房管理系统database administrator.\'; 

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

①添加计划步骤

 1 EXEC msdb.dbo.sp_add_jobstep                
 2     @job_name = \'jb_药房管理系统_FullBackup_Weekly\'            
 3     ,@step_name = \'js_药房管理系统_FullBackup\'            
 4     ,@step_id = 1            
 5     ,@database_name = \'master\'            
 6     ,@subsystem = \'TSQL\'            
 7     ,@command =             
 8         \'EXEC 药房管理系统.dbo.usp_BackupFull\'        
 9     ,@retry_attempts = 3            
10     ,@retry_interval = 0            
11     ,@on_success_action = 4            
12     ,@on_success_step_id = 2            
13     ,@on_fail_action = 4            
14     ,@on_fail_step_id = 3;    
15 EXEC msdb.dbo.sp_add_jobstep                
16     @job_name = \'jb_药房管理系统_FullBackup_Weekly\'            
17     ,@step_name = \'js_药房管理系统_MailAfterFullBkOk\'            
18     ,@step_id = 2            
19     ,@database_name = \'master\'            
20     ,@subsystem = \'TSQL\'            
21     ,@command =             
22         \'EXEC 药房管理系统..usp_execMailAfterBkOk;\'        
23     ,@retry_attempts = 3            
24     ,@retry_interval = 0; 

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

 1 EXEC msdb.dbo.sp_add_jobstep                
 2     @job_name = \'jb_药房管理系统_FullBackup_Weekly\'            
 3     ,@step_name = \'js_药房管理系统_MailAfterFullBkFail\'            
 4     ,@step_id = 3            
 5     ,@database_name = \'master\'            
 6     ,@subsystem = \'TSQL\'            
 7     ,@command =             
 8         \'EXEC 药房管理系统..usp_MailAfterBkFail;\'        
 9     ,@retry_attempts = 3            
10     ,@retry_interval = 0;            
11 
12 
13     EXEC msdb.dbo.sp_send_dbmail                
14         @profile_name = \'mp_药房管理系统_Dba\'            
15         ,@recipients = \'dba@药房管理系统.com\'            
16         ,@subject = \'TestMail_2\'            
17         ,@body = \'This mail contains the query result as attach.\'    ---以附件的形式发送        
18         ,@query=            
19             \'SELECT TOP 100        
20                     *
21                 FROM    
22                     master.dbo.spt_values\'
23         ,@attach_query_result_as_file = 1;    

 

以上是关于学习笔记——作业的知识点与注意事项的主要内容,如果未能解决你的问题,请参考以下文章

C#学习笔记——需要注意的基础知识

学习笔记-镜像的知识点与注意事项

学习笔记(十三)——数据库备份还原的知识点与注意事项

201621044079 韩烨作业09-集合与泛型

(软考学习记录) —— 系统架构设计师教程 - 第一章:操作系统基础知识笔记

机器学习笔记——关联规则