作业报警步骤:
第一步:
数据库完整备份 存储过程
create proc [dbo].[p_backupdb]
@dbname sysname='',--要备份的数据库名称,不指定则备份当前数据库
@bkfname nvarchar(260)='',--备份文件名,文件名中可以用/DBNAME/代表数据库名,/DATE/代表日期,/TIME/代表时间
@bkpath nvarchar(260)='E:/fullbackup/'--备份文件的存放目录,在该目录下创建每天备份的目录
as
declare @sql varchar(500)
if isnull(@dbname,'')='' set @dbname=db_name()
--备份处理
if isnull(@bkfname,'')='' set @bkfname='/DBNAME/_/DATE/.BAK'
set @bkfname=replace(replace(@bkfname,'/DBNAME/',@dbname)
,'/DATE/',convert(varchar(10),getdate(),120))
set @sql = @bkpath+ @bkfname
backup database @dbname to disk = @sql
数据库差异备份 存储过程
create proc [dbo].[p_Diffbackupdb]
@dbname sysname='',--要备份的数据库名称,不指定则备份当前数据库
@bkfname nvarchar(260)='',--备份文件名,文件名中可以用/DBNAME/代表数据库名,/DATE/代表日期,/TIME/代表时间
@bkpath nvarchar(260)='E:/fullbackup/'--备份文件的存放目录,在该目录下创建每天备份的目录
as
declare @sql varchar(500)
if isnull(@dbname,'')='' set @dbname=db_name()
--备份处理
if isnull(@bkfname,'')='' set @bkfname='/DBNAME/_/DATE/.BAK'
set @bkfname=replace(replace(replace(@bkfname,'/DBNAME/',@dbname)
,'/DATE/',convert(varchar,getdate(),112))
,'/TIME/',replace(convert(varchar,getdate(),108),':',''))
set @sql = @bkpath+ @bkfname
print @sql
backup database @dbname to disk = @sql
WITH DIFFERENTIAL,FORMAT
第二步:
使用存储过程创建作业。(要开启SQL Server 代理服务)
第三步:
a:选择作业选项,创建作业。
b:在基本的作业创建完成之后,添加警报内容,并选择报警类型和所用数据库。
c:在响应选项中,添加操作员并勾选电子邮件。
d:在通知选项中,选择作业完成时要做的操作,选择电子邮件选项就OK,要注意的是操作员的内容添加,其中的电子邮件是指操作员接收的电子邮件地址。
e:控制面板->邮件->显示配置文件,添加自定义邮件配置文件,并对电子账户进行配置,这个电子邮件地址就是你用来发送的电子邮件,
将邮件设置好之后,选择测试账户设置,看看是否成功,如果失败,就 查看其他设置选项,在发送服务器选项卡中勾选我的发送服务器要求验证选项,使用与接收邮件相同的设置,这时候在测试,应该可以解决问题。
f:回到sqlserver对象资源管理器,右击SQL Server代理,选择属性->报警系统,勾选启用邮件配置文件,使用数据库邮件,并加载配置文件。到此,一切设置已经OK。