一、数据库备份
declare @time datetime
,@savePath varchar(500) --保存路径
,@filePath varchar(500) --文件路径
,@dbName varchar(500) --数据库名
,@bakName varchar(500) --备份名
,@keepDays int --备份保留天数
,@delBkEndTime datetime --旧有备份删除截止时间
set @time = getdate()
set @savePath = N'D:\dbs\bak'
/*********************************备份CommonData数据库*********************************************/
--设置要备份库
set @dbName = N'CommonData'
set @keepDays = 3 --删除3天前的备份
--拼接路径及备份名
set @filePath = @savePath + '\' + @dbName + N'_' + convert(varchar(10),@time,21) + N'.bak'
set @bakName= @dbName + N'_' + convert(varchar(10),@time,21)
set @delBkEndTime = dateadd(day, -@keepDays, getdate())
--select @savePath, @dbName, @filePath, @bakName, @delBkEndTime
--备份
BACKUP DATABASE @dbName
TO DISK = @filePath
WITH NOFORMAT, INIT,
NAME = @bakName, SKIP, NOREWIND, NOUNLOAD, STATS = 10
--删除旧有备份
EXECUTE master.dbo.xp_delete_file 0, @savePath, N'bak', @delBkEndTime
/*********************************备份CommonData数据库*********************************************/
二、日志处理
2.1 首先了解日志的三种恢复模式
简单,批量更新和完全,简单模式LOG文件不会自动增大或不会自动增大很多,因为每当发生一个检查点,它就可以覆盖以前的日志空间;
批量和完全,只有当你备份了日志内容后,日志空间才可以被覆盖利用,因此,如果你当你的数据库在完全模式时,你限制了日志文件的大小,那么如果你的数据库日志文件不及时备份,可能会导致系统挂起。
(注意:如果你限制日志文件增长,那么你可以在企业管理器里通过数据库的属性,然后在属性窗口更改日志文件的属性,即取消日志文件增长就可以,当然你也可以限制文件增长的最大尺寸。)
2.2 限制日志文件无限制增长步骤
数据库-》右键-》属性-》文件-》设置日志文件的最大大小-》确定-》选项-》设置恢复模式为“简单”-》确定
三、综合策略
因为如果不限制数据库日志的增长,数据库日志将无限制增长从而占用极多的硬盘,而且如果要还原备份的数据库的话也将非常的缓慢,因此限制数据库日志的大小非常必要;但是使用“简单”回复模式的日志后,数据的安全性降低了,但是可以通过上面的数据库备份操作来提高数据的安全性,对数据库每x小时备份一次,不仅提高了安全性,而且恢复起来也会相当的快,因为少了日志这条大大的尾巴