1、实验五 数据库的备份与恢复一、实验目的:理解备份的基本概念,了解备份设备的概念。掌握各种备份数据库的方法,了解如何制定备份计划,如何从备份中恢复设备二、实验设备和仪器1硬件:PC 一台,局域网环境 2. 软件:win2000 操作系统,sql server 2000三、实验内容及要求 1. 创建备份设备2. 进行数据库备份,管理备份设备3. 数据库恢复四、实验准备:数据库的备份与恢复是两个相对应的概念,备份是恢复的基础,恢复是备份的目的。数据库备份是指系统管理员定期或不定期地将数据库部分或全部内容复制到磁带或另一个磁盘上保存起来的过程。备份可分为静态备份和动态备份。数据库恢复是指在数据库遭到破
2、坏时使数据库从有效的备份中恢复正常。备份期间不允许对数据库进行任何存取、修改活动的备份方式称为静态备份。备份期间允许对数据库进行存取或修改,即各份和用户事务可以并发执行的备份方式称为动态备份。在 SQL Server 中可创建维护数据库的备份设备,使用 Enterprise Manager 或系统存储过程来规划和执行备份操作和恢复操作。确定备份计划主要考虑以下几个方面:1)确定备份的频率。确定备份频率要考虑两个因素:一是系统恢复时的工作量,二是系统活动的事务量。对于完整数据库备份,可以是每个月、每一周甚至是每一天进行,而事务日志备份可以是每一周、每一天甚至是每一小时进行。2)确定备份的内容。确
3、定数据库中的哪些数据需要备份。3)确定备份的介质。确定是使用磁盘、还是磁带作为备份的介质。4)确定备份的方式。确定备份采用动态备份还是静态备份。5)估计备份需要的存储空间量。在执行备份前,应该估计备份需要使用的存储空间量。6)确定备份的人员。应该指定专人负责数据库的备份,一般只有下列角色的成员才可以备份数据库:服务器角色 Sysadmin、数据库角色 db_owner 和 db_backupoperator。7)是否使用备份服务器。如果使用备份服务器,那么在出现故障时,系统就能迅速地得到恢复。8)确定备份存储的期限和存放地点:备份应该存储在安全的地方并保存适当的期限。执行数据库恢复以前,应注意
4、以下两点:l)在数据库恢复前,应该删除故障数据库,以便删除对故障数据库的任何引用。2)在数据库恢复前,必须限制用户对数据库的访问,数据库的恢复是静态的,应使用企业管理器或系统存储过程 sp_dbotion 设置数据库为单用户。五、实验原理与步骤:1. 创建备份设备先创建文件夹 D:你的学号。l)在 D:stubak 位置创建一个名为 DiskBak_yourdb 的本地磁盘备份文件。USE yourdbGOEXEC sp_addumpdevice disk, DiskBak_yourdb, D:stubak你的学号.bak如:2)查看系统中有哪些备份设备。Sp_helpdevice2. 进行数
5、据库备份,管理备份设备1)创建数据库 yourdb 的完全备份。USE yourdbBACKUP DATABASE yourdb TO DiskBak_yourdb如:2)查看备份设备中备份集内包含的数据库和日志文件列表。RESTORE FILELISTONLY FROM DiskBak_yourdb3)查看特定备份设备上所有备份集的备份首部信息。RESTORE HEADERONLY FROM DiskBak_yourdb在执行上述语句返回的结果集中:BackupName:备份集名 BackupDescription:备份描述 BackupType:备份类型Position:备份集号 Devi
6、ceType:备份设备名 ServerName:服务器名DatabaseName:数据库名 BackupSize:备份集大小其中 BackupType 值的含义如下:1:完整数据库备份 2:事务日志备份 4:文件各份5:差异数据库备份 6:差异文件备份4)创建数据库 yourdb 的差异备份。先修改数据库中 Student 表的记录,再进行差异备份。BACKUP DATABASE yourdb TO DiskBak_yourdb WITH DIFFERENTIAL5)创建数据库 yourdb 的事务日志备份。BACKUP LOG yourdb TO DiskBak_yourdb3. 数据库恢复
7、1)从备份设备 DiskBak_yourdb 的完整数据库备份中恢复数据库 yourdb。USE masterRESTORE DATABASE yourdb FROM DiskBak_yourdb2)从备份设备 DiskBak_yourdb 的差异数据库备份(假设为第 24 个备份集)中恢复数据库 yourdb。RESTORE DATABASE yourdb FROM DiskBak_yourdbWITH NORECOVERYGORESTORE DATABASE yourdb FROM DiskBak_yourdbWITH FILE24,RECOVERY3)从备份设备 DiskBak_your
8、db 的事务日志备份(假设为第 1 个设备集)中恢复数据库 yourdb。RESTORE LOG yourdbFROM DiskBak_yourdbWITH FILE20,NORECOVERY4删除特定备份设备。Sp_dropdevice DiskBak_yourdb四、思考题:1. 根据实验步骤,再回顾一下前面介绍的实验原理,确切理解数据库备份的含义。2. 根据实验步骤中备份数据库的各种方法进行数据库备份,并注意不同方法之间的差别。3. 思考哪些数据库文件应该定期备份,为什么?4. 在用 T-SQL 语句进行数据库恢复的实验中,没有给出太多的实例,主要是要大家举一反三,同学还可按照语法设计实验自己完成。5. 对前面已建立的某个数据库进行备份,然后在它上面创建一个表格,并记住它的名字,随后进行数据库恢复,比较恢复前后这个数据库的不同点。