备份类型和备份内容
1、备份类型
- 完整备份: 完整备份是对所有数据库信息进行备份,它可用作系统失败时恢复数据库的基础。如果数据库是一个只读数据库,那么可以使用完整数据库备份。
- 差异备份: 差异备份是对最近一次数据库备份以来发生的数据变化进行备份。对于一个经常要进行数据操作的数据库进行备份,需要在完全数据库备份的基础上进行差异备份。
差异备份的优点是速度快,使备份数据库的时间减少,因为它要备份的数据量比完整备份小得多。 通过增加差异备份的次数,可以降低丢失数据的风险。
- 事务日志备份: 事务日志备份是对数据库发生的事务进行备份,包括从上次进行事务日志备份、差异备份和数据库完全备份之后,所有已经完成的事务。 它可以在相应的数据库备份的基础上, 尽可能地恢复最新的数据库记录。由于它仅对数据库事务日志进行备份,所以其需要的磁盘空间和备份时间都比数据库备份少得多。
事务日志记录了用户对数据的各种操作,事务就是一系列的数据库操作!
差异备份和事务日志备份都减少了备份数据库所需的时间,但它们之间有一个重要的差别,事务日志备份含有自上次备份以来的所有修改,而差异备份只含有该行的最后一次修改。
2、备份内容
备份就是对SQL Server数据库或事务日志进行备份,数据库备份记录了在进行备份这一操作时数据库中所有数据的状态,以便在数据库遭到破坏时能够及时地将其恢复。数据库需备份的内容可分为如下3个。
- 系统数据库: 系统数据库主要包括Master, Msdb和Model数据库,它们记录了重要的系统信息,是确保系统正常运行的重要依据,必须完整备份。
- 用户数据库: 用户数据库是存储用户数据的存储空间集,通常用户数据库中的数据依其重要性可分为关键数据和非关键数据。关键数据是用户的重要数据,不易甚至不能重新创建,必须进行完整备份。
- 事务日志: 事务日志记录了用户对数据的各种操作,平时系统会自动管理和维护所有的数据库事务日志。相对于数据库备份,事务日志备份所需要的时间较少,但恢复需要的时间比较长。
备份策略
1、完整备份
完整备份策略适合数据库数据不是很大,而且数据更改不是很频繁的情况, 完整备份一般可以几天进行一次或几周进行一次,每当进行一次新的完整备份时,前面进行的备份可能就没什么用处了,因为后续的完整备份包含数据库的最新情况,因此可以将之前的备份覆盖掉。
当对数据库数据的修改不是很频繁,而且允许一定量的数据丢失时,可以选择只用完整备份的策略。完整备份包括对数据和日志的备份。
2、完整备份加日志备份
如果使用数据库的用户不允许丢失太多数据, 而且又不希望经常进行完整备份,这时可以在完整备份中间加入若干次日志备份。
3、完整备份加差异备份再加日志备份
如果进行一次完整备份的时间比较长,用户可能希望将进行完整备份的时间间隔再加大一些,如每周的周日进行一次。 如果还采用完整备份加日志备份的方法,那么恢复起来比较耗时。因为在利用日志备份进行恢复时,系统是将日志记录的操作重做一次。
遇到这种情况,可以采取第三种策略,即完整备份加差异备份再加日志备份的策略。
> 在完整备份中间加一些差异备份
如每周日进行一次完整备份,每天0:00进行一次差异备份,然后
> 再在邻近的两次差异备份之间增加一些日志备份
这种策略的优势是备份和恢复的速度都比较快,而且当系统出现故障时,丢失的数据也相对较少。
数据库恢复
在恢复数据库之前,如果数据库的日志文件没有损坏,则为尽可能减少数据的丢失, 可在恢复之前对数据库进行一次日志备份(称为日志尾部备份), 这样就可以将数据的损失减少到最小。
恢复数据库顺序如下:(完整->差异->事务日志)
(1) 恢复最近的完整数据库备份。 因为最近的完整数据库备份记录有数据库最近的全部信息。
(2) 恢复完整备份之后的最近的差异数据库备份(如果有差异备份)。 因为差异备份是相对完整备份之后对数据库所做的全部修改。
(3) 按事务日志备份的先后顺序恢复自完整备份或差异备份之后的所有日志备份。 由于日志备份记录的是自上次备份之后新记录的日志备份,因此,必须按顺序恢复自最近的完整备份或差异备份之后所进行的全部日志备份。
练习题: