--数据库备份一般在晚上定时执行.可以以天为单位备份数据库
/*
有疑问联系: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)