首页 > 代码库 > 备份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数据库