第20章数据库备份和恢复•数据库的备份和恢复,是数据库管理中最重要的部分。SQLServer2005提供了高性能的备份和还原功能。本章将详细讲述数据库备份和还原的全过程,并介绍常用的数据库备份和恢复的操作。20.1理解数据库备份•SQLServer数据库备份的功能十分强大,使用起来也非常的简便。但由于备份数据库,涉及数据系统的可靠性、数据的完整性和安全性,因此要求备份过程严谨有序。本节就备份的原理做一介绍,只有在充分的理解这一过程,数据库备份才会更加有效。20.1.1备份的目的•备份是将数据库中的数据进行导出,成为复本,目的是在系统发生故障后还原和恢复数据。备份有不同的处理模式,可以用于不同的故障恢复。数据丢失的原因主要有以下几类:•用户错误(如误删除数据表等)。•硬件故障(如磁盘驱动器损坏等)。•自然灾难。20.1.2备份过程与恢复模式•SQLServer数据库提供了多种备份方式。一般情况下备份过程是指“在确定恢复模式的基础上,执行多种备份类型的组合”的过程,目的是尽可能充分的备份数据,减少数据损失。数据库的备份涉及数据库的数据和事务日志,涉及恢复模式和备份类型等多个方面因素。(具体内容请参照书。)20.1.3完整恢复模式•完整恢复模式是SQLServer2005数据库恢复模式中提供最全面保护的模式,即在完整恢复模式下数据库可以SQLServer2005数据库提供的所有还原模式进行数据库的恢复。使用完整恢复模式的情况如下所示。•当用户要求在数据库恢复时,还原全部的数据时使用完整恢复模式。•当数据库包含多个文件组,用户要求并根据需要对单个文件组进行还原时使用完整恢复模式。•当用户要求能够恢复到任意时段的数据库,时使用完整恢复模式。20.1.4大容量日志恢复模式•大容量日志恢复模式和完整恢复模式不同之处在于,在进行大批量操作时(如bulkinsert等大容量导入操作时)不是将所有每一项事务都记录到日志中,而只是对这些操作进行开始和结果等基础信息的记录。大容量日志恢复模式只对大容量操作进行最小记录,不记录实际的操作事务过程,因此大容量日志恢复模式增加了这些大容量复制操作丢失数据的风险。20.1.5简单恢复模式•简单恢复模式,顾名思义即为最简单的记录事务日志的方式,对于数据库操作完成,成功提交后事务日志将自动截断,不活动的日志将被删除。可以将简单恢复模式理解为没有事务日志的备份。在简单恢复模式下,数据库的备份和恢复因为没有日志的参与,简化了其处理过程。简单恢复模式,只能将数据库恢复到备份。使用简单恢复模式的在以下的情况中使用。20.2备份策略•上一节介绍了备份与恢复模式,本节讲述在备份时的一般策略。备份过程根据恢复的目标而制定,这包括可用性、恢复的要求、数据库的业务类型等因素。20.2.1备份的类型•SQLServer2005数据库提供了以下多种备份类型,如表20.2所示。其中完整备份、差异备份、以及事务日志备份都是用户经常使用的备份方式。(具体内容请参照书。)20.2.2理解备份策略•备份策略是用户根据数据库运行的业务特点,制定的备份类型的组合。例如对一般的事务性数据库,使用“完整备份”加“差异备份”类型的组合,当然还要选择适当的“恢复模式”。•备份策略是用户根据自身的情况自己定义的,根据不同的数据库业务特点,提供了几种参考策略,主要包括“完全数据库备份策略”、“数据库和事务日志备份策略”、“差异备份策略”、“文件或文件组备份策略”。20.2.3完全数据库备份策略•完全数据库备份策略是定期执行数据库的“完整备份”,备份数据只依赖于“备份完整”。例如,定期修改数据的小型数据库,每天下午进行数据的少量修改,可以在每天20:00进行数据库的完整备份。完全数据库备份策略适用于以下情况。•如果数据库数据量小,总的备份时间是可以接受的。•如果数据库数据仅有很少的变化或者数据库是只读的。20.2.4数据库和事务日志备份策略•当数据库要求较严格的可恢复性,而由于时间和效率的原因,仅通过使用数据库的完整备份实现这样可恢复性并不可行时。可以考虑使用数据库加事务日志备份策略,即在数据库完整备份的基础上,增加事务日志备份,以记录全部数据库的活动。•当数据库实现数据库和事务日志备份策略时,用户应备份从最近的数据库完整备份开始,使用事务日志备份。数据库实现数据库和事务日志备份策略一般用于经常进行修改操作的数据库上。20.2.5差异备份策略•差异备份策略包括,执行常规的数据库“完整备份”加“差异备份”,并且可以在完整备份和差异备份中间执行事务日志备份。恢复数据库的过程则为,首先恢复数据库的“完整备份”,其次是最新一次的“差异备份”,最后执行最新一次“差异备份”以后的每一个“事务日志备份”。该策略在日常工作中被大量使用。差异备份策略一般用于以下备份需求的数据库。•数据库变化比较频繁。•备份数据库的时间近可能的短。20.2.6文件或文件组备份策略•文件或文件组备份策略主要包含备份单个文件或文件组的操作,通常这类策略用于备份读写文件组。备份文件和文件组期间,通常要备份事务日志,以保证数据库的可用性。这种策略虽然灵活,但是管理起来比较复杂的,SQLServer不能自动的维护文件关系的完整性。使用文件或文件组策略通常在数据库非常庞大,完整备份耗时太长的情况下使用。20.3执行和管理备份•执行备份在确定“恢复模式”的情况下,可以进行不同策略的备份操作,本节列举一个备份示例。说明常规的备份过程。(具体内容请参照书。)20.3.1在简单恢复模式下根据完全数据库备份策略进行数据库备份•(具体内容请参照书。)20.3.2在完整恢复模式下根据差异备份策略进行数据库备份•(具体内容请参照书。)20.3.3使用T-SQL语句备份数据库•在数据库的管理与维护中,备份数据库通常使用脚本完成,因为备份数据库,通过T-SQL脚本可以进行打包,由SQLServer2005数据库的管理器自动执行。(具体内容请参照书。)20.4还原数据库•恢复数据库要根据数据库的“恢复模式”属性,确定还原数据库的顺序。理解数据库的还原顺利是正确进行数据库恢复的基础。20.4.1理解还原过程•还原过程根据恢复模式的不同,操作步骤也不同。(具体内容请参照书。)20.4.2在完整恢复模式还原数据库的完整备份•在完整恢复模式下还原数据库的完整备份是日常工作中碰到最多的情况,本例使用前面讲述的DBBK数据库为基础,备份的记录如表20.5所示。(具体内容请参照书。)20.4.3使用T-SQL还原数据库•还原数据库也可以使用脚本完成,通过脚本还原数据库,提供了更加丰富的参数选项,使用用户更加灵活的对数据库进行还原处理。(具体内容请参照书。)