读书人

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

发布时间: 2012-02-14 19:19:19 作者: rapoo

数据库备份策略……
如题,分享些经验方面的东西……

[解决办法]

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 DISK=@str  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 DISK=@str  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 DISK=@str  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 @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
[解决办法]
觉得必要时,就备份,一般工作不是很频繁的一周一备叱.可以设置为自动化,用作业.
[解决办法]
探讨
SQL code

--小F的

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

[解决办法]
制定备份策略,需要考虑:

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

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

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

读书人网 >SQL Server

热点推荐