首页 > 代码库 > 备份SQL Server数据库
备份SQL Server数据库
1、建立批处理文件
| @echo off set dates=%date:~0,4%%date:~5,2%%date:~8,2% set rar="%Programfiles%\WinRAR\Winrar.exe" set rand=%random% set folder=d:\DBback\%date% rem 每天创建一个文件夹,以当天日期命名 if not exist %folder% md %folder% @echo ……正在备份中,请不要关闭程序…… rem 如果备份sql200,把@osql改成@isql @osql -Usa -P123456 -i D:\dbback2005.sql -o D:\sqlback.log rem 备份后,压缩成Zip文件,文件名后有4位随机数 %rar% a -afzip -ibck -df %folder%\数据库名%rand% D:\数据库名.bak |
2、建立dbback2005.sql文件
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 | declare @dumpfile varchar(50) declare @msg varchar(70) select @dumpfile = ‘D:\数据库名.bak‘ select @msg=convert(char(26),getdate(),9)+‘-----正在清理日志......‘ print @msg backup tran 数据库名 with truncate_only if (@@ERROR <> 0 ) begin select @msg=convert(char(26),getdate(),9)+‘-----清理日志失败或出现异常......‘ print @msg end else begin select @msg=convert(char(26),getdate(),9)+‘-----清理日志完毕......‘ print @msg end select @msg=convert(char(26),getdate(),9)+‘-----开始备份northwind数据库.....‘ print @msg backup database 数据库名 to disk=@dumpfile with init /*init覆盖现有的备份集,不指定数据容量很大*/ if (@@ERROR <> 0 ) begin select @msg=convert(char(26),getdate(),9)+‘-----备份数据失败或出现异常‘ print @msg end else begin select @msg=convert(char(26),getdate(),9)+‘-----数据库备份完毕‘ print @msg END /* SELECT mm=DATENAME(yy,GETDATE())+DATENAME(mm,GETDATE())+DATENAME(dd,GETDATE()) */ |
二、备份SQL Server2008
注:修改批处理文件,调用dbback2008.sql
1、建立dbback2008.sql文件
1 2 3 4 5 6 7 8 9 10 | DECLARE @name varchar(45) DECLARE @datetime char(17) DECLARE @path varchar(255) DECLARE @bakfile varchar(290) set @name=‘DB_name‘ set @datetime=CONVERT(char(11),getdate(),120) + REPLACE(CONVERT(char(8),getdate(),108),‘:‘,‘‘) set @path=‘D:\‘ set @bakfile=@path+‘/‘+@name+‘_‘+@datetime+‘.BAK‘ backup database @name to disk=@bakfile with name=@name go |
备份SQL Server数据库