SQLSERVER2005如何实现每日自动备份,加密备份,自动还原。.doc
文本预览下载声明
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 SkyDBAddPWDBackUpWith ENCRYPTIONAs????----- 数据库加密备份?? 在后台用Job去完成Declare @SQl nVarchar(2000) , ????????@DD??DateTime ,????????@Int Int
---- 备份数据库Set @SQl=BACKUP DATABASE Exel TO DISK = Nd:\Exel+Convert(Varchar(10),GetDate(),120)+.BakWITH INIT, NOUNLOAD ,PASSWORD=NmichelinSP, NAME = NHRBackUp+Convert(Varchar(10),GetDate(),120)+ , NOSKIP , STATS = 100, DESCRIPTION = N, NOFORMAT
Exec (@SQl)
---- 删除上月数据Set @DD = dbo.GetMaxMinDa
显示全部