用作业和存储过程自动备份数据库并删除自动删除

系统 1550 0

第一步:新建存储过程gsgl

SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

CREATE PROCEDURE [dbo].[gsgl]   AS    -- sdgsDbBackUp存储过程名称

declare
@filename nvarchar(100),--文件名
@NowDay int --设置时间

set @filename='F:\Data\sdgs_DB'+ convert ( nvarchar(11) ,getdate() , 112 ) +'.bak' --文件路径及文件名

print @filename BACKUP DATABASE [sdgs] TO DISK = @filename WITH INIT , NOUNLOAD , NAME = N'sdgs数据备份', NOSKIP , STATS = 10, NOFORMAT
--启用xp_cmdshell
EXEC sp_configure 'show advanced options', 1;RECONFIGURE;EXEC sp_configure 'xp_cmdshell', 1;RECONFIGURE;
--删除一周前的备份
declare @cmd varchar(40)
set @cmd='del F:\Data\sdgs_DB'+ convert ( nvarchar(11) ,getdate()-7 , 112 ) +'.bak'
exec xp_cmdshell @cmd

第二步新建存储过程sdgs_BackUp
set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
go


CREATE PROCEDURE [dbo].[sdgs_BackUp] AS

DECLARE @jobid uniqueidentifier, @jobname sysname
SET @jobname = N'sdgs_BackUp'

IF EXISTS(SELECT * FROM msdb.dbo.sysjobs WHERE name=@jobname )
EXEC msdb.dbo.sp_delete_job @job_name=@jobname

EXEC msdb.dbo.sp_add_job
@job_name = @jobname,
@job_id = @jobid OUTPUT

--定义作业步骤
DECLARE @sql nvarchar(4000),@dbname sysname
SELECT @dbname=DB_NAME(), --作业步骤在当前数据库中执行

--执行存储过程gsgl

@sql=N'exec (''gsgl'') '
--一般定义的是使用TSQL处理的作业,这里定义要执行的Transact-SQL语句
EXEC msdb.dbo.sp_add_jobstep
@job_id = @jobid,
@step_name = N'sdgs_BackUp',
@subsystem = 'TSQL', --步骤的类型,一般为TSQL
@database_name=@dbname,
@command = @sql

--创建调度(使用后面专门定义的几种作业调度模板)
EXEC msdb..sp_add_jobschedule
@job_id = @jobid,           
@name = N'dd',               --作业计划属性,名称
@freq_type=4,                --频率,执行 每天
@freq_interval=1,            --频率,执行间隔 1天。即:指定每一天发生一次.
@freq_subday_type=0x4,       --重复方式,0x1=在指定的时间,0x4=多少分钟,0x8=多少小时执行一次
@freq_subday_interval=6,     --重复周期数,这里6分钟执行一次
@active_start_date = NULL,   --作业执行的开始日期,为NULL时表示当前日期,格式为YYYYMMDD
@active_end_date = 99991231, --作业执行的停止日期,默认为99991231,格式为YYYYMMDD
@active_start_time = 00000, --作业执行的开始时间,格式为HHMMSS
@active_end_time = 235959    --作业执行的停止时间,格式为HHMMSS
EXEC   msdb.dbo.sp_add_jobserver    
@job_name   =   'sdgs_BackUp'   ,  
@server_name   =   N'(local)'

第三步,在前台页面代码中执行存储过程:[sdgs_BackUp] ,自动创建作业!!作业的机制使软件自动进行数据库备份

转自: http://hi.baidu.com/%BC%D2%C0%EF%B5%C4%B3%A4%BD%AD%CB%AE/blog/item/06b21f6122aa464eeaf8f858.html

用作业和存储过程自动备份数据库并删除自动删除一周前的备份


更多文章、技术交流、商务合作、联系博主

微信扫码或搜索:z360901061

微信扫一扫加我为好友

QQ号联系: 360901061

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描下面二维码支持博主2元、5元、10元、20元等您想捐的金额吧,狠狠点击下面给点支持吧,站长非常感激您!手机微信长按不能支付解决办法:请将微信支付二维码保存到相册,切换到微信,然后点击微信右上角扫一扫功能,选择支付二维码完成支付。

【本文对您有帮助就好】

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描上面二维码支持博主2元、5元、10元、自定义金额等您想捐的金额吧,站长会非常 感谢您的哦!!!

发表我的评论
最新评论 总共0条评论