SQLSERVER2008R2 T-SQL备份脚本

背景:
使用管理---&gt维护计划--&gt添加备份计划--&gt报错:
消息
已以用户 FSLGZ\rfadmin 的身份执行。 Microsoft (R) SQL Server 执行包实用工具  Version 10.0.1600.22 for 64-bit  版权所有 (C) Microsoft Corp 1984-2005。保留所有权利。    SQL Server 执行包实用工具要求 Integration Services 由 SQL Server 2008 的以下某个版本安装: Standard、Enterprise、Developer 或 Evaluation。若要安装 Integration Services,请运行 SQL Server 安装程序并选择 Integration Services。.  包执行失败。.  该步骤失败。

经查,发现是在安装数据库时未安装SSIS包,导致无法使用维护计划来进行备份。

使用脚本进行备份:
SQLSERVER2008R2
打开SQL SERVER 代理---&gt作业---&gt新建作业---&gt在步骤处编写T-SQL脚本---&gt设置好计划任务


T-SQL备份脚本:

declare @device varchar(50);
declare @filename varchar(50);
declare @filename2 varchar(50);
declare @datetime varchar(50);
declare @weekname varchar(50);
declare @weeknametmp varchar(4);
declare @weekday int;
declare @database varchar(10);
set @weekname=datename(weekday,getdate());
set @datetime =  convert(varchar(20),getdate(),112);
set @weeknametmp=substring(@weekname,3,1);
if (@weeknametmp='一')
set @weekday=1;
else if (@weeknametmp='二')
set @weekday=2;
else if (@weeknametmp='三')
set @weekday=3;
else if (@weeknametmp='四')
set @weekday=4;
else if (@weeknametmp='五')
set @weekday=5;
else if (@weeknametmp='六')
set @weekday=6;
else if (@weeknametmp='日')
set @weekday=0;
set @datetime =  convert(varchar(20),getdate()-@weekday,112);
set @device= 'QQTT_backup' + @datetime;                                     --备份设备名,随便命名吧
set @filename='D:\BACKUP\QQTT_backup'+@datetime+ '_all.bak'        --备份文件保存路径及文件名
set @filename2='E:\BACKUP\QQTT_backup'+@datetime+ '_all.bak'   
set @filename3='D:\BACKUP\QQTT_backup'+@datetime+ '_incr.bak'
set @filename4='E:\BACKUP\QQTT_backup'+@datetime+ '_incr.bak'
set @database='QQTT'
if (@weekname='星期日') 
begin
execute sp_addumpdevice 'disk',@device,@filename;                            --添加备份设备
backup database @database to disk=@filename mirror to disk=@filename2 with format,init,checksum;         --加上with checksum为校验备份文件的参数
                                                                                                 --mirror to disk=XXX  表示镜像备份,相当于在不同路径做了2份一样的备份
exec sp_dropdevice @device;                                                            --删除备份设备
end
else
begin
execute sp_addumpdevice 'disk',@device,@filename2;
backup database @database to disk=@filename3 mirror to disk=@filename4 with differential,format,init,checksum;         --加上with differential为差异备份的参数
exec sp_dropdevice @device;
end


另外还可以添加其他参数:
WITH CHECKSUM        --校验备份文件
WITH FORMAT            --覆盖任何现有的备份和创建一个新的媒体集,可以避免一些由于备份设置产生的错误.
WITH INIT                   --覆盖同名的备份文件
WITH COMPRESSION  --压缩备份
WITH DIFFERENTIAL   --差异备份
WITH BUFFERCOUNT = 10  --指定用于备份操作的 I/O 缓冲区总数
WITH MAXTRANSFERSIZE = 4194304  --指定要在 SQL Server 和备份介质之间使用的最大传输单元(字节)
取值范围:  65536 字节 (64 KB) 的倍数至4194304字节(4M)

查看所有备份设备
select * from sys.backup_devices
删除备份设备
exec sp_dropdevice 'QQTT_backup20151009'


注意:
备份语句还可以备份多个备份集(存放多个目录路径)
例如:
BACKUP DATABASE [databasename]
TO  DISK = 'C:\Backup\BakFile1.bak',  DISK = 'C:\Backup\BakFile2.bak',  WITH FORMAT, INIT,  NAME = 'TEST-完整 数据库 备份', SKIP, NOREWIND, NOUNLOAD,  STATS = 10

也可以用变量替代
backup database @database to disk=@filename,disk=@filename2,@devicewith checksum;  

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/28371090/viewspace-1813610/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/28371090/viewspace-1813610/

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值