上一篇
:
数据库备份与还原处理
|
下一篇
:SQLServer
数据库文件恢复技术
数据库备份方案
数据库备份,是在数据丢失的情况下,能及时恢复重要数据,防止数据丢失的一种重要手段。一个合理的
数据库备份方案,应该能够在数据丢失时,
有效地恢复重要数据,
同时需要考虑技术实现难度和有效地利用资源。
1.1.
准备工作
在制订数据备份方案前,
我们首先对要对现实情况做一个具体的调查,
这样制订出来的方案才是合理且有效
的。一般,我们需要了解如下内容:
l数据丢失的允许程度?
l允许的故障处理时间?
l业务处理的频繁程度?
l服务器的工作负荷?
l可接受的备份/恢复处理技术难度?
l数据库的大小?
l数据库大小的增长速度?
l那些表中的数据变化是频繁的,那些表中的数据是相对固定的?
l那些表中的数据是很重要的,不允许丢失的,那些表中的数据是允许丢失一分的?
l什么时候大量使用数据库,导致频繁的插入和更新操作?
l现有的数据库备份资源(磁盘、磁带、光盘)有哪些?
l有无可能为数据库备份投入新的设备或资金?
1.2.
备份方法
了解现状后,我们再看看
SQLServer
提供给我们的备份方法,
SQLServer
一共给我们提高了四种数据
库备份的方法:
1.2.1.
完全备份
这种备份会备份数据库中所有的数据。因此,它生成的备份文件大小和备份时间是由数据库中,数据的容
量决定的。还原的时候,可以直接从备份文件还原到备份时的状态,不需要其他文件的支持,还原过程最简单;
1.2.2.
差异备份
备份自上次完全备份后,发生了更改的数据。差异备份是备份发生了更改的数据,因此在做差异备份前,
必须至少有一次完全备份。而还原的时候,也必须先还原差异备份前一次的完全备份,才能在此基础上进行差
异备份数据的还原。这种备份生成的备份文件大小和备份需要的时间,取决于自上次完全备份后,数据库的数
据变化情况,相对于完全备份来说,它生成的备份文件较小,备份时间较短,对
SQLServer
服务性能的影响
也较小;但它的还原过程相对麻烦一点,必须对应它之前的完全备份才能成功还原;
1.2.3.
日志备份
备份是自上次备份后对数据库执行的所有事务的一系列记录,这个上次备份,
可以是完全备份、
差异备份、
日志备份,但日志备份前,至少有一次完全备份。还原的时候,必须先还原完全备份,再还原差异备份(如果
有的话),再按照日志备份的先后顺序,依次还原各次日志备份的内容;这种备份生成的备份文件最小,需要
的时间也最短,对
SQLServer
服务性能的影响也最小,适宜于经常备份。但是很显然地,它的还原过程是最
麻烦的,不但要对应它之前做的完全备份和差异备份(如果有的话),还要注意还原的顺序;
1.2.4.
文件和文件组备份
可以备份和还原数据库中的个别文件或文件组。这种备份方法平常使用的机率比较少,常常用于对重要数
据的备份。它要求在数据库设计时,就做好考虑,把需要单独做特别备份的表进行分组,给它们分配不同的文
件组(表只能放在文件组上,不能放在具体的文件上,一个文件组可以是一个文件或多个文件),这样才能在
做备份的时候,
单独备份这些数据。
这种的备份的处理技术难度相对来说比较高,
不但要掌握备份
/还原的方法,
还必须对数据库结构和数据库中的各表数据情况掌握得比较好
1.3.
备份方案制订策略
有了上面的资料,我们就可以根据我们的实际情况来选择合适的备份方法了。一般的,我们在制订备份方
案的时候,可以按照下面的策略:
l
数据库备份能保障在数据丢失的情况下,能恢复重要数据
,
因此,在数据库中的数据发生变化后,要及时对
重要的数据进行备份。
l
数据备份,要求不能影响业务处理的正常进行,因此,数据备份要采用多种备份方法并用,将完全备份这
类占用服务资源高的备份设置在业务处理的空闲时间段,而将日志备份这类占用服务资源少的备份方法应用在
业务处理的高峰,但却需要及时备份的时候;
l
充分考虑故障出现时,业务处理可以接受的停机时间,不同的备份方法,需要的还原时间不同,因此,在照
顾备份对业务处理影响的同时,要考虑还原的时间,不能因为完全备份对业务处理影响很大,就几个月才做一
次,这样的话,在还原的时候花费的时间就很长了;
l
考虑公司的技术力量,尽量避免采用超过公司掌握的技术程序的备份处理方法;
l
用效利用备份资源,要根据公司目前具备的备份资源,合理地使用上述四种备份方法进行备份,同时要考虑过
期备份文件的清除和备份资源的再利用问题;
l
要考虑灾难性数据丢失造成的影响。对于重要的数据
,
要将数据库备份到多种介质和多个地方,这样一处备
份损坏了,还有其他的备份可用。
1.4.
备份方案的实施
数据库备份是一个周期性的工作,因此我们应该让
SQLServer
按照我们制订的备份方案,自动地完成各
种备份,而不要我们手工来进行日常的备份处理。
在
SQLServer
中,要定时执行某项操作,是由
SQLAgent
服务来完成的,因此,要让我们的备份方案
能自动完成的话,首先我们要把
SQLAgent
服务设置为自动启动
(
需要注意的是,
win98/winme
这类的操作
系统是无法设置
SQLSERVERAGENT
自动启动的
)
,设置方法:
我的电脑--控制面板--管理工具--服务--鼠标右键SQLSERVERAGENT--属性--启动类型--选择“自动启动”--确定
在SQLServer中,我们可以通过下面几种方法来定义我们的数据库备份:
1数据库维护计划:这里可以定义完全备份和日志备份的自动备份作业。定义方法:--企业管理器--管理--右键数据库维护计划--新建维护计划--[下一步]--选择你要备份的数据库--[下一步]--直到“指定数据库备份计划”这项
--然后按照向导提示进行设置就行了
2.数据库备份:这里可以根据我们的备份方式制订各种数据库备份作业。定义方法:--企业管理器--鼠标右键你要备份的数据库--所有任务--备份数据库--在[
备份]项中选择数据库和备份方式--在[目的]--[备份到]项中,按[添加]按钮,添加备份文--在[调度]项中,勾选“调度”,并点…按钮设置备份的时间安排--
确定
3.作业:上述两种方法,最终设置的结果都是一个作业(
JOB)调度,因此,我们也可以通过直接创建作业,由作业定时调用备份处理的语句来实现自动备份。定义方法:--企业管理器--SQLServer代理--右键作业--新建作业--[常规]项中输入作业名称--[步骤]项--新建--输入步骤名--[类型]中选择"Transact-SQL脚本(TSQL)"
|
|