SQL Server 2008 提供了4 种数据库备份类型:

1.完整数据库备份

完整数据库备份就是备份整个数据库。他备份数据库文件、这些文件的地址以及事务日志的某些

部分(从备份开始时所记录的日志顺序号到备份结束时的日志顺序号)。这是任何备份策略中都

要求完成的第一种备份类型,因为其他所有备份类型都依赖于完整备份。换句话说,如果没有执

行完整备份,就无法执行差异备份和事务日志备份。

虽然从单独一个完全数据库备份就可以恢复数据库,但是完全数据库与差异备份和日志备份相

比,在备份的过程中需要花费更多的空间和时间,所以完全数据库备份不需要频繁的进行,如果

只使用完全数据库备份,那么进行数据恢复时只能恢复到最后一次完全数据库备份时的状态,该

状态之后的所有改变都将丢失。

2.差异数据库备份

差异备份是指将从最近一次完全数据库备份以后发生改变的数据。如果在完整备份后将某个文件

添加至数据库,则下一个差异备份会包括该新文件。这样可以方便地备份数据库,而无须了解各

个文件。例如,如果在星期一执行了完整备份,并在星期二执行了差异备份,那么该差异备份将

记录自星期一的完整备份以来已发生的所有修改。而星期三的另一个差异备份将记录自星期一的

完整备份以来已发生的所有修改。差异备份每做一次就会变得更大一些,但仍然比完整备份小,

因此差异备份比完整备份快。

3.事务日志备份

尽管事务日志备份依赖于完整备份,但他并不备份数据库本身。这种类型的备份只记录事务日志

的适当部分,明确地说,自从上一个事务以来已经发生了变化的部分。事务日志备份比完整数据

库节省时间和空间,而且利用事务日志进行恢复时,可以指定恢复到某一个事务,比如可以将其

恢复到某个破坏性操作执行的前一个事务,完整备份和差异备份则不能做到。但是与完整数据库

备份和差异备份相比,用日志备份恢复数据库要花费较长的时间,这是因为日志备份仅仅存放日

志信息,恢复时需要按照日志重新插入、修改或删除数据。所以,通常情况下,事务日志备份经

常与完整备份和差异备份结合使用,比如,每周进行一次完整备份,每天进行一次差异备份,每

小时进行一次日志备份。这样,最多只会丢失一个小时的数据。

4.文件组备份

当一个数据库很大时,对整个数据库进行备份可能会花很多的时间,这时可以采用文件和文件组

备份,即对数据库中的部分文件或文件组进行备份。

文件组是一种将数据库存放在多个文件上的方法,并允许控制数据库对象(比如表或视图)存储

到这些文件当中的哪些文件上。这样,数据库就不会受到只存储在单个硬盘上的限制,而是可以

分散到许多硬盘上,因而可以变得非常大。利用文件组备份,每次可以备份这些文件当中的一个

或多个文件,而不是同时备份整个数据库。

文件组还可以用来加快数据访问的速度,因为文件组允许将表存放在一个文件上,而将对应的索

引存放在另一个文件上。尽管这么做可以加快数据访问的速度,但也会减慢备份过程,因为必须

将表和索引作为一个单元来备份。

笔者提示:为了使恢复的文件与数据库的其余部分保持一致,执行文件和文件组备份之后,必

须执行事务日志备份。

SQL Server 2008 包括3 种恢复模型,其中每种恢复模型都能够在数据库发生故障的时候恢复相

关的数据。不同的恢复模型在SQL Server 备份、恢复的方式和性能方面存在差异,而且,采用

不同的恢复模型对于避免数据损失的程度也不同。每个数据库必须选择三种恢复模型中的一种以

确定备份数据库的备份方式。

1.简单恢复模型

对于小型数据库不经常更新数据的数据库,一般使用简单恢复模型。使用简单恢复模型可以将数

据库恢复到上一次的备份。简单还原模型的优点在于日志的存储空间较小,能够提高磁盘的可用

空间,而且也是最容易实现的模型。但是,使用简单恢复模型无法将数据库还原到故障点或特定

的即时点。如果要还原到这些即时点,则必须使用完全恢复模型或大容量日志记录恢复模型。

2.完全恢复模型

当从被损坏的媒体中完全恢复数据有着最高优先级时,可以使用完全恢复模型。该模型使用数据

库的复制和所有日志信息来还原数据库。SQL Server 可以记录数据库的所有更改,包括大容量操

作和创建索引。如果日志文件本身没有损坏,则除了发生故障时正在进行的事务,SQL Server

可以还原所有的数据。

在完全恢复模型中,所有的事务都被记录下来,所以可以将数据库还原到任意时间点。SQL Server

2005 支持将命名标记插入到事务日志中的功能,可以将数据库还原到这个特定的标记。

记录事务标记要占用日志空间,所以应该只对那些在数据库恢复策略中扮演重要角色的事务使用

事务标记。该模型的主要问题是日志文件较大