首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

求写个bat文件备份sql server 2005数据库。解决思路

2012-02-29 
求写个bat文件备份sql server 2005数据库。sql server 2005 express 的数据库要求每天做数据备份,但是安装

求写个bat文件备份sql server 2005数据库。
sql server 2005 express 的数据库要求每天做数据备份,但是安装的也不完整的,不能直接做备份,想用bat写个批处理文件后,在做个计划任务,请教那个bat文件怎么写呢?

[解决办法]

SQL code
/*******************完整备份作业*******************/--完整备份,每周一次USE MasterGOdeclare @str varchar(100)set @str='D:\DBtext\jgj\DBABak\FullBak'+replace(replace(replace(convert(varchar,getdate(),20),'-',''),' ',''),':','')+'.bak'BACKUP DATABASE [demo] TO DISK=@strWITH RETAINDAYS=15,NOFORMAT,NOINIT,NAME=N'Demo完整备份',SKIP,NOREWIND,NOUNLOAD,STATS=10GO/*******************差异备份作业*******************/--截断日志USE MasterGOBACKUP LOG Demo  WITH NO_LOGGO--收缩日志文件USE DemoGODBCC SHRINKFILE (N'Demo_log',0,TRUNCATEONLY)GO--差异备份,每天一次USE MasterGOdeclare @str varchar(100)set @str='D:\DBtext\jgj\DBABak\DiffBak'+replace(replace(replace(convert(varchar,getdate(),20),'-',''),' ',''),':','')+'.diff'BACKUP DATABASE [Demo] TO DISK=@strWITH DIFFERENTIAL,RETAINDAYS=8,NOFORMAT,NOINIT,NAME=N'Demo差异备份',SKIP,NOREWIND,NOUNLOAD,STATS=10GO/******************日志备份作业*******************/--日志备份,每小时一次USE DemoGOdeclare @str varchar(100)set @str='D:\DBtext\jgj\DBABak\logbak'+replace(replace(replace(convert(varchar,getdate(),20),'-',''),' ',''),':','')+'.trn'BACKUP LOG [Demo] TO DISK=@strWITH RETAINDAYS=3,NOFORMAT,NOINIT,NAME=N'Demo日志备份',SKIP,NOREWIND,NOUNLOAD,STATS=10GO--删除过期的备份文件,每天两次declare @str varchar(100),@dir varchar(100),@fileName varchar(30)set @dir='del D:\DBtext\jgj\DBABak\'set @filename=left(replace(replace(replace(convert(varchar,getdate()-15,20),'-',''),' ',''),':',''),8)set @str=@dir+'fullbak'+@filename+'*.bak'exec xp_cmdshell @strset @filename=left(replace(replace(replace(convert(varchar,getdate()-8,20),'-',''),' ',''),':',''),8)set @str=@dir+'diffbak'+@filename+'*.diff'exec xp_cmdshell @strset @filename=left(replace(replace(replace(convert(varchar,getdate()-8,20),'-',''),' ',''),':',''),8)set @str=@dir+'logbak'+@filename+'*.trn'exec xp_cmdshell @str
[解决办法]
SQL code
-- 建文件backup.sql, 内容:backup database [数据库名] to disk='[备份文件名]' with format,init-- 建批处理文件auto_backup.bat, 内容:sqlcmd -S [服务器名] -U sa -P [密码] -i [backup.sql]-- 建windows计划任务, 定期调用执行auto_backup.bat
[解决办法]
探讨
sql server 2005 express 的数据库要求每天做数据备份,但是安装的也不完整的,不能直接做备份,想用bat写个批处理文件后,在做个计划任务,请教那个bat文件怎么写呢?

[解决办法]
SQL code
-- 建文件backup.sql, 内容:USE pcglxtGOdeclare @str varchar(100)set @str='E:\databak\pcglxt'+replace(replace(replace(convert(varchar,getdate(),20),'-',''),' ',''),':','')+'.bak'BACKUP DATABASE [pcglxt] TO DISK=@strWITH RETAINDAYS=15,NOFORMAT,NOINIT,NAME=N'pcglxt完整备份',SKIP,NOREWIND,NOUNLOAD,STATS=10GO-- 建批处理文件auto_backup.bat, 内容:sqlcmd -S [服务器名] -U sa -P [密码] -i [backup.sql]-- 建windows计划任务, 定期调用执行auto_backup.bat 

热点排行