文档详情

SQLSERVER2005如何实现每日自动备份,加密备份,自动还原。.doc

发布:2019-03-26约2.93千字共11页下载文档
文本预览下载声明
H.T 2011-9-6 编辑 SQL2005如何实现每日自动备份功能 科普扫盲: 主要数据文件:主要数据文件是数据库的起点,指向数据库中文件的其它部分。每个数据库都有一个主要数据文件。主要数据文件的推荐文件扩展名是 .mdf。 次要数据文件:次要数据文件包含除主要数据文件外的所有数据文件。有些数据库可能没有次要数据文件,而有些数据库则有多个次要数据文件。次要数据文件的推荐文件扩展名是 .ndf。 日志文件:日志文件包含恢复数据库所需的所有日志信息。每个数据库必须至少有一个日志文件,但可以不止一个。日志文件的推荐文件扩展名是 .ldf 我们创建的时候,还记得要我们指定数据库这2个文件的存在位置吗? 其实MDF用来存在主要数据,而LDF是存在日志数据的(比如系统日志、登陆帐号等) 而且随着时间的流逝,这2个数据库文件中存在的数据越来越大50G 100G都有可能; 数据库恢复,真正意义上其实就是在恢复这2个文件而已。 管理---维护计划 新建计划---采用维护计划向导 开始设置 选择数据库 备份路径设置 设置执行周期 设置完成 最后:当我们设置完毕之后 在Agent代理作业中,将会出现前面我们设置的每日备份计划 以后,我们可以手工来人为执行作业 也可以到历史日志中查看 请注意2点: 这种备份是没办法做到定期删除过期的数据库的。它不象2000数据库,里面还有个设置删除多少时间之前的数据库备份文件; 2、这种备份是无法做到加密备份的。 加密备份与恢复 Alter FUNCTION GetMaxMinDate(@Term smalldatetime,@Type nVarchar(10),@Period Integer)???? RETURNS Smalldatetime?? AS???? Begin?? Declare @Ret Smalldatetime?? Select @Ret=Case @Period When 1 Then?? ????Case @Type When MAX Then?? ???? DateAdd(Day,-1,Dateadd(Month,+12,Convert(varchar(5),@Term,120)+01-01))?? ????Else?? ???? Convert(varchar(5),@Term,120)+01-01?? ????End?? ?? When 2 Then?? ????Case @Type When MAX Then?? ???? DateAdd(Day,-1,Dateadd(Month,+3,Convert(varchar(5),@Term,120)+Right(00+Cast(Ceiling(Datepart(Month,@Term)/3.0)*3-2 As varchar(2)),2)+-01))?? ????Else?? ???? Convert(varchar(5),@Term,120)+Right(00+Cast(Ceiling(Datepart(Month,@Term)/3.0)*3-2 As varchar(2)),2)+-01?? ????End?? ?? When 3 Then?? ????Case @Type When MAX Then?? ???? DateAdd(Day,-1,Dateadd(Month,+1,Convert(varchar(8),@Term,120)+01))?? ????Else?? ???? Convert(varchar(8),@Term,120)+01?? ????End?? ?? End?? Return @Ret?? End?? go Create Procedure SkyDBAddPWDBackUp With ENCRYPTION As ????----- 数据库加密备份?? 在后台用Job去完成 Declare @SQl nVarchar(2000) , ????????@DD??DateTime , ????????@Int Int ---- 备份数据库 Set @SQl=BACKUP DATABASE Exel TO DISK = Nd:\Exel+Convert(Varchar(10),GetDate(),120)+.Bak WITH INIT, NOUNLOAD ,PASSWORD=NmichelinSP, NAME = NHRBackUp+Convert(Varchar(10),GetDate(),120)+ , NOSKIP , STATS = 100, DESCRIPTION = N, NOFORMAT Exec (@SQl) ---- 删除上月数据 Set @DD = dbo.GetMaxMinDa
显示全部
相似文档