+ -
当前位置:首页 → 问答吧 → SQL Server 特殊备份需求

SQL Server 特殊备份需求

时间:2011-12-08

来源:互联网

以下是客户对备份的要求和本人对应的解决方案,请各位多指教:
1.每天夜里两点定时做备份;
2.保留最近3天的备份;
3.保留一年内每周1的备份;

方案 :
1.每天夜里两点定时做备份;
2.保留最近3天的备份;
---1,2两点每天单独备份一次,备份文件会按照日期递增(排除周1的备份),比如:
DB20111208.bak;
DB20111209.bak;
...
3.保留一年内每周1的备份;
---单独有个备份作业

问题:1,2在实施备份时候,如何在全备前在代码中加入清除事务日志的代码?(针对FULL还原模式的库)

作者: vcane   发布时间: 2011-12-08

1、是用job来定时备份
2、设置备份的有效期限

作者: HEROWANG   发布时间: 2011-12-08

引用 1 楼 herowang 的回复:
1、是用job来定时备份
2、设置备份的有效期限
--这样会自动删除过期的备份?

作者: vcane   发布时间: 2011-12-08

"问题:1,2在实施备份时候,如何在全备前在代码中加入清除事务日志的代码?(针对FULL还原模式的库)"

--> 不需要清除事务日志, 直接備份即可.

另問: SQL Server是什麼版本的.

作者: ap0405140   发布时间: 2011-12-08

SQL code
--删除过期的备份文件,每天两次
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 @str
set @filename=left(replace(replace(replace(convert(varchar,getdate()-8,20),'-',''),' ',''),':',''),8)
set @str=@dir+'diffbak'+@filename+'*.diff'
exec xp_cmdshell @str
set @filename=left(replace(replace(replace(convert(varchar,getdate()-8,20),'-',''),' ',''),':',''),8)
set @str=@dir+'logbak'+@filename+'*.trn'
exec xp_cmdshell @str


参考

作者: fredrickhu   发布时间: 2011-12-08