您的位置:首页 > 数据库

利用JOB和SQL邮件功能实现对数据库的定时备分

2006-02-28 16:29 549 查看
--数据库备份一般在晚上定时执行.可以以天为单位备份数据库

/*
有疑问联系:zlp321001@hotmail.com

*/

---首先建立JOB,配置定时备份时间

企业管理器
               --管理
               --SQL Server代理
              --右键作业
              --新建作业
              --"常规"项中输入作业名称
              --"步骤"项
                                 --新建
                                 --"步骤名"中输入步骤名
                                --"类型"中选择"Transact-SQL 脚本(TSQL)"
                                 --"数据库"选择执行命令的数据库
                                 --"命令"中输入要执行的语句: (SQL语句或者存储过程)                               
                                --确定
               --"调度"项
                                --新建调度
                                --"名称"中输入调度名称
                                --"调度类型"中选择你的作业执行安排
                                             --如果选择"反复出现"
                                              --点"更改"来设置你的时间安排

           然后将SQL Agent服务启动,并设置为自动启动,否则你的作业不会被执行

(在上一篇文章中,如果已经配置好了,邮件服务器,并且确定与网络连接,可以自动发邮件,备份日志到指定用户,SQL发送邮件配置,具体参考:使用SQLServer2000 发送邮件详细配置过程 文章)

以下为备份代码

declare @strsql varchar(1000),  --执行语句
               @strdirname varchar(50),--建立文件夹名
               @strcmd varchar(50),    --执行命令名
               @strsend varchar(1000), --邮件发送语句
               @strdate varchar(50)    --邮件发送日期
set @strsql='backup database pubs to disk=''d:/backup/erp/'
set @strdirname=replace(substring(convert(varchar(20),getdate(),120),1,10),'-','')
set @strcmd='md d:/backup/erp/'
set @strcmd=@strcmd+@strdirname
--取得当天日期,格式为yyyy-mm-dd
set @strdate=substring(convert(varchar(50),getdate(),120),1,10)
set @strsend='sys_sendmail ''qvb0803@sina.com'',''zlp@zehua.com.cn'',''www'',''备份通知'','''+@strdate+'日数据库备份成功,感谢您的使用!'''
exec master..xp_cmdshell @strcmd
set @strsql=@strsql+@strdirname+'/SZ.dat''with init,nounload,noskip,noformat'
print @strsql
exec (@strsql)
backup database pubs to disk='d:/backup/erp/pubs.dat' with init,nounload,noskip,noformat
--用FTP上传到ERP服务器
exec master..xp_cmdshell 'ftp -s:"D:/backup/erp/ftp.txt"'
--操作成功后发送邮件
exec(@strsend)
if @@error <> 0
begin
raiserror('数据库备份发生错误,请检查设置',16,1)
set @strsend='sys_sendmail ''zlp@Zehuacom'.cn',''qvb0803@sina.com.cn',''www'',''备份通知'','''+@strdate+'日数据库备份失败,请检查设置!'''
exec (@strsend)
end

 

--如果邮件没有配置成功(不需要发邮件,参考以下代码)

declare @strsql varchar(1000),  --执行语句
        @strdirname varchar(50),--建立文件夹名
        @strcmd varchar(50),    --执行命令名
        @strdate varchar(50)   
set @strsql='backup database SZ  to disk=''d:/backup/SZ/'
set @strdirname=replace(substring(convert(varchar(20),getdate(),120),1,10),'-','')
set @strcmd='md d:/backup/SZ/'
set @strcmd=@strcmd+@strdirname
--取得当天日期,格式为yyyy-mm-dd
set @strdate=substring(convert(varchar(50),getdate(),120),1,10)
exec master..xp_cmdshell @strcmd
set @strsql=@strsql+@strdirname+'/SZ.dat''with init,nounload,noskip,noformat'
print @strsql
exec (@strsql)

 

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息