背景:
使用管理--->维护计划-->添加备份计划-->报错:
消息
已以用户 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 代理--->作业--->新建作业--->在步骤处编写T-SQL脚本--->设置好计划任务
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;
使用管理--->维护计划-->添加备份计划-->报错:
消息
已以用户 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 代理--->作业--->新建作业--->在步骤处编写T-SQL脚本--->设置好计划任务
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/