当前位置: 代码迷 >> Sql Server >> 数据库备份策略…该如何解决
  详细解决方案

数据库备份策略…该如何解决

热度:32   发布时间:2016-04-27 18:04:27.0
数据库备份策略……
如题,分享些经验方面的东西……

------解决方案--------------------
SQL code
--小F的/*******************完整备份作业*******************/  --完整备份,每周一次   USE Master  GO  declare @str varchar(100)  set @str='D:\DBtext\jgj\DBABak\FullBak'+replace(replace(replace(convert(varchar,getdate(),20),'-',''),' ',''),':','')+'.bak'  BACKUP DATABASE [demo] TO [email protected]  WITH RETAINDAYS=15,NOFORMAT,NOINIT,  NAME=N'Demo完整备份',SKIP,NOREWIND,  NOUNLOAD,STATS=10  GO          /*******************差异备份作业*******************/  --截断日志   USE Master  GO  BACKUP LOG Demo  WITH NO_LOG  GO  --收缩日志文件   USE Demo  GO  DBCC SHRINKFILE (N'Demo_log',0,TRUNCATEONLY)  GO  --差异备份,每天一次   USE Master  GO  declare @str varchar(100)  set @str='D:\DBtext\jgj\DBABak\DiffBak'+replace(replace(replace(convert(varchar,getdate(),20),'-',''),' ',''),':','')+'.diff'  BACKUP DATABASE [Demo] TO [email protected]  WITH DIFFERENTIAL,RETAINDAYS=8,NOFORMAT,NOINIT,  NAME=N'Demo差异备份',SKIP,NOREWIND,  NOUNLOAD,STATS=10  GO          /******************日志备份作业*******************/  --日志备份,每小时一次   USE Demo  GO  declare @str varchar(100)  set @str='D:\DBtext\jgj\DBABak\logbak'+replace(replace(replace(convert(varchar,getdate(),20),'-',''),' ',''),':','')+'.trn'  BACKUP LOG [Demo] TO [email protected]  WITH RETAINDAYS=3,NOFORMAT,NOINIT,  NAME=N'Demo日志备份',SKIP,NOREWIND,  NOUNLOAD,STATS=10  GO          --删除过期的备份文件,每天两次   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 @[email protected][email protected]+'*.bak'  exec xp_cmdshell @str  set @filename=left(replace(replace(replace(convert(varchar,getdate()-8,20),'-',''),' ',''),':',''),8)  set @[email protected][email protected]+'*.diff'  exec xp_cmdshell @str  set @filename=left(replace(replace(replace(convert(varchar,getdate()-8,20),'-',''),' ',''),':',''),8)  set @[email protected][email protected]+'*.trn'  exec xp_cmdshell @str
------解决方案--------------------
觉得必要时,就备份,一般工作不是很频繁的一周一备叱.可以设置为自动化,用作业.
------解决方案--------------------
探讨
SQL code

--小F的

/*******************完整备份作业*******************/
--完整备份,每周一次
USE Master
GO
declare @str varchar(100)
set @str='D:\DBtext\jgj\DBABak\FullBak'+replace(replace(replace(……

------解决方案--------------------
制定备份策略,需要考虑:

1.可投入的成本有什么? 包括机房,磁带,磁盘,存储,光盘等.

2.业务系统可接受的数据损失最大是什么程度?

3.如何做灾难恢复?(有些情况下,有备份也是恢复不了的喔).
------解决方案--------------------
补充,
4.备份作业,对业务系统性能的影响.
------解决方案--------------------
可以考虑做分发,在订阅服务器上备份。
------解决方案--------------------
备份关键生产数据库,应该是冷备+热备的方式来做。
冷备,保证不物理性数据灾难,有备份可用:楼上的大神们已经有备份策略和方式了
热备,保证业务的连续性:数据库镜像或者复制,再不然群集,第三方热备软件。
  相关解决方案