1、,实验14 数据库备份与恢复,数据库恢复机制是数据库管理系统的重要组成部分,经常的备份可以有效防止数据丢失,使管理员能够把数据库从错误的状态恢复到已知的正确状态。本实验给出了几种备份和恢复的操作方法。 【知识要点】1.数据库备份和恢复概述计算机系统的各种软硬件故障、用户误操作以及恶意破坏是不可避免的,这将影响到数据的正确性甚至造成数据损失、服务器崩溃的致命后果。如果用户采取适当的备份策略,适时备份,就能够把数据库从错误状态恢复到某一备份的已知的正确状态,这就是数据库管理系统提供的数据库备份恢复机制。2.故障类型 (1)事务内部的故障事务内部的故障可以分为预期的和非预期的。对于预期的事务故障是可
2、以通过事务程序本身发现的,可由程序判断是否提交或回滚事务来保证数据库的正确状态。对于非预期的事务故障,不能由事务程序处理,则要采用备份恢复机制来保证数据库的正确状态。,实验14 数据库备份与恢复,(2)系统故障系统故障是指造成系统停止运转的任何事件,使得系统要重新启动。这类故障不破坏数据库,但所有运行事务都非正常终止,一些尚未完成的事务的结果可能已送入物理数据库,从而造成数据库可能处于不正确的状态。为保证数据一致性,恢复子系统必须在系统重新启动时让所有非正常终止的事务回滚,强行撤消(UNDO)所有为完成的事务。另一方面,系统故障使得有些已完成的事务可能有一部分甚至全部留在缓冲区,尚未写回磁盘上
3、的物理数据库中,使数据库处于不一致状态。所以系统重新启动后,恢复子系统还需要重做(REDO)所有已提交的事务,使的数据库恢复到一致状态。 (3)介质故障介质故障称为硬故障(Hard Crash),如磁盘损坏、磁头碰撞,瞬时强磁场干扰等。这类故障将破坏数据库或部分数据库,并影响正在存取这部分数据的所有事务,是最严重的一种故障,恢复方法是重装数据库,然后重做已完成的事务。 (4)计算机病毒计算机病毒是一种人为的故障或破坏,是一些恶作剧者研制的一种计算机程序,它可以破坏数据库中的数据,甚至摧毁整个计算机系统。对计算机病毒的处理办法一般是通过杀毒软件检查、诊断、消灭计算机病毒。,实验14 数据库备份与
4、恢复,3.恢复技术的基本原理及实现技术恢复的基本原理是:数据冗余。就是说,数据库中任何一部分被破坏的或不正确的数据可以根据存储在系统别处的冗余数据来重建。建立冗余数据最常用的技术是数据转储和登录日志文件。通常在一个数据库系统中,这两种方法是一起使用的。 4.设置恢复模型SQL Server 2000包括3中恢复模型,不同的恢复模型在SQL Server备份、恢复的方式和性能方面存在差异,而且采用不同的恢复模型对于避免数据损失的程度也是不同的。 (1)简单恢复模型使用简单恢复模型可以将数据库恢复到最新的备份,但无法将数据库还原到故障点或特定的检查点。 (2)完全恢复模型完全恢复模型是默认的恢复模
5、型,在故障还原中具有最高的优先级。这种恢复模型使用数据库备份和日志备份,可以将数据库恢复到故障点状态。,实验14 数据库备份与恢复,(3)大容量日志记录恢复模型与完全恢复模型相似,大容量日志记录恢复模型使用数据库和日志备份来恢复数据库。该模型对某些大规模或大容量数据操作,如Select Into、Create Index、大批量装载数据、处理大对象数据时,提供最佳性能和最少的日志使用空间。 (4)下表说明适用于每种恢复模型的备份类型,实验14 数据库备份与恢复,4.数据库备份的方式使用SQL Server可以决定如何在备份设备上创建备份,如:可以重写过期的备份或者将新备份追加到备份媒体上。(1
6、)完全数据库备份使用此种数据库备份方式,SQL Server将备份数据库的所有数据文件和在备份过程中发生的任何活动。(2)执行差异备份差异备份只备份自最近一次完全数据库备份以来被修改的那些数据。所以差异备份依赖完全数据库备份。系统出现故障时,首先恢复完全数据库备份,然后恢复差异备份。(3)执行日志备份日志备份是备份自上次事务日志备份后到当前事务日志末尾的部分。使用事务日志备份将数据库恢复到特定的检查点或故障点。若采用此种备份必须设置数据库恢复模型为完全或大容量日志记录恢复模式。系统出现故障时,首先恢复完全数据库备份,然后恢复日志备份。(4)执行文件/文件组备份当用户拥有超大型数据库即拥有多个数
7、据文件、多个文件组的时候,或者每天24小时数据都在变化,应当执行数据库文件或文件组备份,并且必须执行事务日志备份。,实验14 数据库备份与恢复,5.恢复数据库的方法 (1)从完全数据库备份中恢复 (2)从差异备份中恢复 (3)从日志备份中恢复 (4)从文件或文件组备份中恢复 (5)直接拷贝文件的备份和恢复 6.备份和恢复数据库的SQL语句 (1)备份数据库的SQL语句 BACKUP DATABASE database_name TO WITH , DESCRIPTON = text , DIFFERENTIAL , EXPIREDATE = date , MEDIAPASSWORD = med
8、iapassword , PASSWORD = password , INIT | NOINIT , NAME = backup_set_name ,实验14 数据库备份与恢复,(2)恢复数据库的SQL语句 RESTORE DATABASE database_name FROM WITH , MEDIAPASSWORD = mediapassword , PASSWORD = password , MOVE logical_file_name TO operating_system_file_name , NORECOVERY | RECOVERY |STANDBY = undo_file_n
9、ame , REPLACE , RESTART 【实验目的】 掌握数据库备份的几种操作方法; 掌握数据库恢复的几种操作方法; 理解和掌握数据库备份和恢复机制的作用; 理解和掌握数据库备份和恢复机制的实现技术。,实验14.1 完全数据库备份与简单恢复,【实验目的】 理解和掌握简单恢复模型的一种策略:完全数据库备份与简单恢复; 掌握使用企业管理器执行完全数据库备份及其简单恢复的方法; 掌握使用T-SQL执行完全数据库备份及其简单恢复的方法。 【实验内容】 1.使用企业管理器执行完全数据库备份及其简单恢复。要求使用企业管 理器按序完成下列操作: 操作1:对现有数据库jiaoxuedb执行完全备份Fu
10、llbackup_jiaoxuedb1; 操作2:将学生张彬的信息从表Student中删除; 操作3:执行恢复,将数据库恢复到操作2之前的状态。 2.使用T-SQL执行完全数据库备份及其简单恢复。要求使用T-SQL按序完 成下列操作:操作1:对现有数据库jiaoxuedb执行完全备份Fullbackup_backup2;操作2:将张彬同学的名字改为:“张斌”;操作3:执行恢复,将数据库恢复到操作2之前的状态。,实验14.1 完全数据库备份与简单恢复,【实验步骤】1.使用企业管理器执行完全数据库备份及其简单恢复 (1)操作1:对现有数据库执行完全备份Fullbackup_jiaoxuedb1,备
11、份前表Student数据,查看表S中 “张彬”的记录存在,选择备份命令,输入备份设置,实验14.1 完全数据库备份与简单恢复,创建备份设置,备份成功提示,实验14.1 完全数据库备份与简单恢复,(2)操作2:将学生张彬的信息从表Student中删除,操作2完成后的S数据,操作2完成前表S数据,实验14.1 完全数据库备份与简单恢复,(3)操作3:执行恢复,将数据库恢复到操作2之前的状态。,选择还原数据库命令,还原数据库选项设置,系统提示还原完成,实验14.1 完全数据库备份与简单恢复,验证还原结果:“张彬”记录已恢复存在。,备份前表Student数据,实验14.1 完全数据库备份与简单恢复,2
12、.使用T-SQL执行完全数据库备份及其简单恢复 (1)操作1:对现有数据库执行完全备份Fullbackup_jiaoxuedb2,查看表S中“张彬”记录,备份前表Student数据,创建完全数据库备份的T-SQL,创建完全备份的T-SQL语句,实验14.1 完全数据库备份与简单恢复,(2)操作2:将张彬同学的名字改为:“张斌”,修改张彬姓名的T-SQL语句,张彬修改成张斌,实验14.1 完全数据库备份与简单恢复,(3)操作3:执行恢复,将数据库恢复到操作2之前的状态,还原数据库的SQL语句,恢复后的表S数据,实验14.2 差异数据库备份与简单恢复,【实验目的】 理解和掌握简单恢复模型的一种策略
13、:数据库备份、差异数据库备 份与简单恢复; 掌握使用企业管理器执行数据库差异备份及其恢复的方法; 掌握使用T-SQL执行数据库差异备份及其恢复的方法。 【实验内容】 1.使用企业管理器执行数据库差异备份及其恢复。要求: 操作1:创建数据库jiaoxuedb一个完全数据库备份Fbackup_jiaoxuedb1; 操作2:把表SC中学号001201学生的02002号课程成绩从NULL修改为88; 操作3:进行差异备份当前数据库Dbackup_jiaoxuedb1; 操作4:把表SC中学号001201学生的02002号课程记录删除; 操作5:把数据库恢复到操作2完成后的状态。 2.使用T-SQL执
14、行数据库差异备份及其恢复。要求: 操作1:创建数据库jiaoxuedb一个完全数据库备份Fbackup_jiaoxuedb2; 操作2:把表SC中学号001201学生的02002号课程记录删除; 操作3:进行差异备份当前数据库Dbackup_jiaoxuedb2; 操作4:向表SC中插入记录:学号:001201、课号:02002、成绩:79; 操作5:把数据库恢复到操作2完成后的状态。,实验14.2 差异数据库备份与简单恢复,【实验步骤】1.使用企业管理器执行数据库差异备份及其恢复 (1)操作1:创建数据库jiaoxuedb一个完全数据库备份Fbackup_jiaoxuedb1,查看表SC学号
15、“001201”学生的“02002”号课程记录,表SC备份前数据,备份数据库命令,选择备份命令,实验14.2 差异数据库备份与简单恢复,选择备份文件,图14-18选择备份文件,备份成功提示,完全数据库备份设置,实验14.2 差异数据库备份与简单恢复,(2)操作2:把表SC中学号001201学生的02002号课程成绩从NULL修改为88。,将学号001201学生的02002号课程成绩从NULL修改为88,(3)操作3:进行差异备份当前数据库Dbackup_jiaoxuedb1,选择差异备份文件,图14-24创建差异备份设置,差异备份设置,实验14.2 差异数据库备份与简单恢复,(4)操作4:把表
16、SC中学号001201学生的02002号课程记录删除。,操作4完成后的SC数据,(5)操作5:把数据库恢复到操作2完成后的状态。,还原差异数据库设置,恢复后的SC数据,实验14.2 差异数据库备份与简单恢复,2.使用T-SQL执行数据库差异备份及其恢复 (1)操作1:创建数据库jiaoxuedb一个完全数据库备份Fbackup_jiaoxuedb2,创建并执行完全备份的T-SQL语句,完全备份jiaoxuedb的T-SQL,实验14.2 差异数据库备份与简单恢复,(2)操作2:把表SC中学号为001201课程号为02002的记录删除。,(3)操作3:进行差异备份当前数据库Dbackup_jia
17、oxuedb2。,实验14.2 差异数据库备份与简单恢复,(4)操作4:向表SC中插入记录:学号:001201、课号:02002、成绩:79,(5)操作5:把数据库恢复到操作2完成后的状态。,还原差异备份数据库jiaoxuedb,操作5完成后的SC,操作完成前的SC,实验14.3 事务日志备份与完全恢复,【实验目的】 理解和掌握完全恢复模型的一种策略:数据库备份、事务日志备份 与完全恢复; 掌握使用企业管理器完全恢复模型策略的实现方法。 【实验内容】1.对数据库jiaoxuedb实施备份(1)对数据库jiaoxuedb进行完全备份Fbackup_jiaoxuedb。(2)对其中的表studen
18、t进行下面操作: 删除学生李平方的记录。 修改学生王蕾的系别为信息系。(3)备份当前活动日志文件Lbackup_jiaoxuedb1。(4)对其中的表student进行下面操作: 修改王一山同学的系别为信息系。 删除学生张建国的记录。2.将数据库jiaoxuedb恢复到“修改王一山同学的系别为信息系”之前的状态还原数据库jiaoxuedb的完全备份Fbackup_jiaoxuedb和恢复事务日志备份Lbackup_jiaoxuedb1。,实验14.3 事务日志备份与完全恢复,【实验步骤】1.对数据库jiaoxuedb实施备份 (1)对数据库jiaoxuedb进行完全备份Fbackup_jiao
19、xuedb。,查看表Student数据,完全备份数据库设置,实验14.3 事务日志备份与完全恢复,(2)对表Student进行下面事务性操作。在企业管理器中,对表Student进行下面操作: 删除学生李平方的记录。 把学生王蕾的系别“计算机”修改为“信息”。 (3)备份当前活动日志文件为Lbackup_jiaoxuedb1。,事务日志备份设置,实验14.3 事务日志备份与完全恢复,(4)对表Student进行下面事务性操作。 把王一山同学的系别“计算机”修改为“信息”系; 删除学生张建国的记录;,操作后Student表中的数据,实验14.3 事务日志备份与完全恢复,2.将数据库jiaoxued
20、b恢复到“修改王一山同学的系别为信息系”之前的状态,(1)还原数据库jiaoxuedb到日志备份Lbackup_jiaoxuedb1。,还原数据库设置,恢复后的S表,(2)查看恢复后的数据表Student内容,实验14 习题,【实验题】 实验内容与要求根据下面的操作和恢复要求,制定相应的备份与恢复策略,并实现恢复。 (1)针对数据库jiaoxuedb进行如下操作 修改学号为991102学生的01001号课程成绩为93分; 插入记录:学号991103,课号01001,成绩70分; 插入如下记录给:教师号为01001的教师讲授000003号课程和000006号课程; 删除教师号为01002 教师的
21、讲授000006号课程的记录; 把教师号为02002 教师讲授的000004号课程改为01002号教师讲授; 把步骤中的成绩改为90分。 (2)指定不同的备份和恢复策略进行如下恢复 恢复到实验题 1执行后的数据库状态。 恢复到实验题 1执行后的数据库状态。 恢复到实验题 1执行后的数据库状态。 恢复到实验题 1执行后的数据库状态。,实验14 习题,(3) 用企业管理器和T-SQL完成下面的备份过程: 制定一个备份计划:每周星期五晚上24点钟,对数据库jiaoxuedb进行完全备份。 制定一个备份计划:每天晚20点种,对数据库jiaoxuedb进行一次差异备份。 制定一个备份计划:每隔12小时,对数据库jiaoxuedb进行一次事务备份。【思考题】 1.SQL Server可能出现哪些故障? 2.完全备份、差异备份和事务备份各自的特点是什么? 3.你认为三种类型的备份都适合哪些故障下的数据库恢复? 4.在重新启动SQL Server时,系统进行的恢复属于什么类型的恢复?,