《实验八数据库的备份与恢复.doc》由会员分享,可在线阅读,更多相关《实验八数据库的备份与恢复.doc(49页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、Four short words sum up what has lifted most successful individuals above the crowd: a little bit more.-author-date实验八数据库的备份与恢复实验八数据库的备份与恢复实验八 数据库的备份与和恢复一、实验目的:1. 掌握数据库备份和恢复的概念2. 熟练掌握数据库备份和恢复的实现方法实验环境:SQL Server 2005二、实验内容及步骤说明:本示例用例的表结构如下所示:Student (sno, sname, sex,sage,dept, oldgrade, advisor)Teac
2、her (tno, tname, dept, salary, title)Course (cno, cname, descry, dept, credit)SC (sno, cno, grade)以上数据库表的含义为:Student学生:sno(学号),sname(学生姓名),sex(性别),sage(年龄),dept(系),oldgrade(高考成绩),advisor(导师)Teacher教师:tno(教师编号),tname(教师姓名),dept(所在系),salary(工资),title(职称)Course课程:cno(课程号),cname(课程名),descry(课程说明),dept(开
3、课系),credits(学分)SC成绩:sno(学号),cno(课程号),grade(成绩)1.利用企业管理器实现数据库备份和恢复(1)创建、查看和删除备份设备l 创建备份设备 图1 图2 在企业管理器中,扩展要操作的SQL 服务器,在管理文件夹中找到备份文件夹。用鼠标右键单击该文件夹后,在弹出的菜单中选择“新建备份设备项,如图1所示。随后会出现如图2所示的备份设备属性对话框。在备份设备属性对话框中,执行下列操作:输入备份设备的逻辑名称;确定备份设备的文件名;单击“确定”按钮。在确定备份设备的文件名时,需要单击文件名栏最右边的“”按钮,并在弹出的文件名对话框中确定或改变备份设备的缺省磁盘文件路
4、径和文件名。l 查看备份设备的相关信息查看备份设备的相关信息时,需要执行的操作是:在企业管理器中扩展服务器,选择管理文件夹和备份文件夹,在细节窗口中找到要查看的备份设备;用鼠标右键单击备份设备,在弹出的菜单上选择“属性”项,会弹出与图3-82相似的备份设备属性对话框;用鼠标单击设备名称右边的“查看”按钮,可弹出备份设备的信息框,从中可以得到备份数据库及备份创建日期等信息。l 删除备份设备 如果要删除一个不需要的备份设备,首先,在企业管理器中该备份设备,并用鼠标右键单击它;在弹出的菜单中选择“删除”项;在确认删除对话框中,单击“确认”按钮。(2)备份数据库l 进入数据库备份对话框在SQL Ser
5、ver的企业管理器中,用鼠标右键单击要备份的数据库;在弹出的菜单上选择“所有任务”中的“备份数据库”项,则会弹出一个数据库备份对话框。该对话框中有常规和选项两个页面,“常规”选项卡的界面如图3-83所示,“选项”选项卡的界面入图3-84所示。 图 3 图 4 l 在常规选项卡中完成以下操作在“数据库”框中选择要备份的数据库;在“名称”框中备份取一个便于识别的名称;选择备份的方法,可选择完全备份、差异备份(增量备份)、事务日志、文件或文件组之一;为磁盘备份设备或备份文件选择目的地,即通过列表右边的“添加”按钮或“删除”确定备份文件的存放位置,列表框中显示要使用的备份设备或备份文件;在“重写”栏中
6、选择将备份保存到备份设备时的覆盖模式;在“调度”栏中设置数据库备份计划。覆盖模式通过两个单选项指定:“追加到媒体”为将数据库备份追加在备份设备已有内容之后;“重写现有媒体”为用数据库备份覆盖备份设备中原有的内容,原有内容将统统丢失。l 设定备份计划需要执行的操作先要选中调度复选框,并单击文本框右边的“”按钮,就会出现如图5所示的编辑备份计划对话框,在对话框中可以设置以下4种备份类型:1) SQL Server 代理启动时自动启动:每当 SQL Server Agent启动工作时,都自动进行数据库备份。2) 每当CPU闲置时启动:每当CPU空闲时进行数据库备份。3) 一次:设定进行数据库备份的一
7、次性时间。4) 反复出现:按一定周期进行数据库备份。当选择“反复出现”备份类型后,还要用鼠标单击位于对话框右下方的“更改”按钮,在“编辑反复出现的作业调度”对话框中,设置备份的发生频率、时间、持续时间等参数,如图6所示。 图 5 图6 l 设置选项页面内容数据库备份对话框的选项页面如图4所示。在“选项”卡中,需要设置以下内容:1) 通过设置“完成后验证备份”复选框决定是否进行备份设备验证。备份验证的目的是为了保证数据库的全部信息都正确无误地保存到备份设备上。通过备份验证,用户可以检查备份设备的性能。从而可以在以后的工作中大胆地使用该备份设备,而不必担心是否有潜在的危险。2) 通过设置“检查媒体
8、集名称和备份集到期时间”复选框决定是否检查备份设备上原有内容的失效日期。只有当原有内容失效后,新的备份才能覆盖原有内容。3) 通过设置“初始他并标识媒体”复选框初始化备份设备。备份设备的初始化相当于磁盘格式化,必须是在使用的覆盖模式是重写时,才可以初始化备份设备。4) 在完成了常规页面和选项页面中的所有设置之后,单击“确定”按钮,并在随后出现的数据库备份设备成功信息框中单击“确定”按钮。(3)SQL Server的数据恢复方法l 调出数据库恢复对话框在SQL Server2000的企业管理器中,用鼠标右键单击要进行数据恢复的数据库。在弹出的菜单中选择“所有任务”中的“还原数据库”项,如图7所示
9、。屏幕上会出现数据库恢复对话框,该对话框中有两个页面;常规页面和选项页面。图7 l 常规页面常规页面中有3个单选按钮,分别对应3种数据库恢复方式:“数据库”按钮说明恢复数据库;“文件组或文件”按钮说明恢复数据使用的文件组或文件;“从设备”按钮说明根据备份设备中包含的内容恢复数据库。不同的选项,其选项卡和设置恢复的方法也不同。1) 恢复数据库选择恢复“数据库”单选项后,常规选项卡界面如图7所示。恢复数据库的操作步骤为:选择还原栏中的“数据库”单选项,说明进行恢复数据库工作;在参数栏中,选择要恢复的数据库名和要还原的第一个备份文件;在备份设备表中,选择数据库恢复要使用的备份文件,即在单击还原列中的
10、小方格,小方格出现“”号则表明已选中;单击“确定”按钮。2) 恢复文件或文件组如果选择恢复“文件组或文件”单选项,则常规选项卡如图8所示。图8在参数栏中选择要恢复的数据库名;如果要进行部分恢复或有限制的恢复,可选中“选择备份集中的子集”复选框,使它有效,并单击它右边的“选择条件”按钮,在弹出的过滤备份设备对话框中设置选择条件;在备份设备表中选择数据库恢复使用的备份设备,即单击Restore列中的小方格,使之出现“”号;单击“确定”按钮。3) 从备份设备中恢复如果选择了从备份设备中恢复单选项,则常规卡如图9所示。参数设置时,首先单击位于窗口右边的“选择设备”按钮,并在弹出框中选择备份设备;设置还
11、原类型单选钮。还原类型有两种:“还原备份集”选项,一般应选择该项;“读取备份集信息并添加到备份历史记录”选项,获取备份设备信息和增加备份历史。如果选择了还原备份集的类型,还应选择恢复方式。恢复方式通过4个单选项实现,它们是:“数据库-完全”选项,从完全数据库备份中恢复;“数据库-差异”选项,从增量备份中恢复;“事务日志”选项,从事务日志备份文件中恢复;“文件或文件组”选项,从文件或文件组中恢复。l 选项页面数据库还原的“选项”卡如图10所示。页面中使用3个复选框设置附加特征:“在还原每个备份后均弹出磁带(如果有)”选项,表示是否在恢复完每个备份之后都弹出磁带,它仅对磁带备份设备有效;“在还原每
12、个备份前提示”选项,表示是否在恢复每个备份之前提示用户;“在现有的数据库上强制还原”选项,表示恢复过程中是否强行覆盖数据库中现有的数据。 图 9 图10 在“选项”页中还列出了数据库的原文件名和恢复后的新文件名,缺省时两者是一样的,可以直接在表中修改恢复后的新文件名。此外,还要设置数据库恢复完成状态。当完成了“常规”卡和“选项”卡的参数设置后,可单击下面的“确定”按钮。SQL Server就开始了数据库恢复操作,屏幕上也会显示恢复进度的对话框,在对话框中显示恢复的进度。2.利用T-SQL语言实现备份和恢复数据库(1)备份数据库备份数据库的语法格式:l 备份整个数据库:BACKUP DATABA
13、SE database_name | database_name_var TO ,.n WITH BLOCKSIZE = blocksize | blocksize_variable , DESCRIPTION = text | text_variable , DIFFERENTIAL , EXPIREDATE = date | date_var | RETAINDAYS = days | days_var , PASSWORD = password | password_variable , FORMAT | NOFORMAT , INIT | NOINIT , MEDIADESCRIPTI
14、ON = text | text_variable , MEDIANAME = media_name | media_name_variable , MEDIAPASSWORD = mediapassword | mediapassword_variable , NAME = backup_set_name | backup_set_name_var , NOSKIP | SKIP , NOREWIND | REWIND , NOUNLOAD | UNLOAD , RESTART , STATS = percentage l 备份特定的文件或文件组:BACKUP DATABASE databa
15、se_name | database_name_var ,.n TO ,.n WITH BLOCKSIZE = blocksize | blocksize_variable , DESCRIPTION = text | text_variable , DIFFERENTIAL , EXPIREDATE = date | date_var | RETAINDAYS = days | days_var , PASSWORD = password | password_variable , FORMAT | NOFORMAT , INIT | NOINIT , MEDIADESCRIPTION =
16、text | text_variable , MEDIANAME = media_name | media_name_variable , MEDIAPASSWORD = mediapassword | mediapassword_variable , NAME = backup_set_name | backup_set_name_var , NOSKIP | SKIP , NOREWIND | REWIND , NOUNLOAD | UNLOAD , RESTART , STATS = percentage l 备份一个事务日志:BACKUP LOG database_name | dat
17、abase_name_var TO ,.n WITH BLOCKSIZE = blocksize | blocksize_variable , DESCRIPTION = text | text_variable , EXPIREDATE = date | date_var | RETAINDAYS = days | days_var , PASSWORD = password | password_variable , FORMAT | NOFORMAT , INIT | NOINIT , MEDIADESCRIPTION = text | text_variable , MEDIANAME
18、 = media_name | media_name_variable , MEDIAPASSWORD = mediapassword | mediapassword_variable , NAME = backup_set_name | backup_set_name_var , NO_TRUNCATE , NORECOVERY | STANDBY = undo_file_name , NOREWIND | REWIND , NOSKIP | SKIP , NOUNLOAD | UNLOAD , RESTART , STATS = percentage 以上参数说明祥见SQL Server联
19、机丛书。例1 创建用于存放 student 数据库完整备份的逻辑备份设备。/ Create a logical backup device for the full student backup.USE studentEXEC sp_addumpdevice disk, student _1, DISK =c:Program FilesMicrosoft SQL ServerMSSQLBACKUP student _1.dat/ Back up the full student database.BACKUP DATABASE student TO student _1;例2创建了一个数据库和
20、日志的完整备份。将数据库备份到称为 student _2 的逻辑备份设备上,然后将日志备份到称为studentLog1 的逻辑备份设备上。 说明 创建逻辑备份设备需要一次完成。USE studentEXEC sp_addumpdevice disk, student _2, c:Program FilesMicrosoft SQL ServerMSSQLBACKUP student _2.datUSE studentEXEC sp_addumpdevice disk, studentLog1, c:Program FilesMicrosoft SQL ServerMSSQLBACKUP stu
21、dentLog1.datBACKUP DATABASE student TO student_2BACKUP LOG student TO studentLog1;(2)恢复数据库恢复数据库的语法格式:l 恢复整个数据库:RESTORE DATABASE database_name | database_name_var FROM ,.n WITH RESTRICTED_USER , FILE = file_number | file_number , PASSWORD = password | password_variable , MEDIANAME = media_name | medi
22、a_name_variable , MEDIAPASSWORD = mediapassword | mediapassword_variable , MOVE logical_file_name TO operating_system_file_name ,.n , KEEP_REPLICATION , NORECOVERY | RECOVERY | STANDBY = undo_file_name , NOREWIND | REWIND , NOUNLOAD | UNLOAD , REPLACE , RESTART , STATS = percentage l 恢复数据库的部分内容:REST
23、ORE DATABASE database_name | database_name_var ,.n FROM ,.n WITH PARTIAL , FILE = file_number | file_number , PASSWORD = password | password_variable , MEDIANAME = media_name | media_name_variable , MEDIAPASSWORD = mediapassword | mediapassword_variable , MOVE logical_file_name TO operating_system_f
24、ile_name ,.n , NORECOVERY , NOREWIND | REWIND , NOUNLOAD | UNLOAD , REPLACE , RESTRICTED_USER , RESTART , STATS = percentage l 恢复特定的文件或文件组:RESTORE DATABASE database_name | database_name_var ,.n FROM ,.n WITH RESTRICTED_USER , FILE = file_number | file_number , PASSWORD = password | password_variable
25、 , MEDIANAME = media_name | media_name_variable , MEDIAPASSWORD = mediapassword | mediapassword_variable , MOVE logical_file_name TO operating_system_file_name ,.n , NORECOVERY , NOREWIND | REWIND , NOUNLOAD | UNLOAD , REPLACE , RESTART , STATS = percentage l 恢复事务日志:RESTORE LOG database_name | datab
26、ase_name_var FROM ,.n WITH RESTRICTED_USER , FILE = file_number | file_number , PASSWORD = password | password_variable , MOVE logical_file_name TO operating_system_file_name ,.n , MEDIANAME = media_name | media_name_variable , MEDIAPASSWORD = mediapassword | mediapassword_variable , KEEP_REPLICATIO
27、N , NORECOVERY | RECOVERY | STANDBY = undo_file_name , NOREWIND | REWIND , NOUNLOAD | UNLOAD , RESTART , STATS = percentage , STOPAT = date_time | date_time_var | , STOPATMARK = mark_name AFTER datetime | , STOPBEFOREMARK = mark_name AFTER datetime 参数说明祥见SQL Server联机丛书。例3恢复数据库。 RESTORE DATABASE stud
28、ent FROM DISK = D:SQLBackupstudent.bakRESTORE DATABASE studentFROM student_backup WITH NONRECOVERYRESTORE LOG studentFROM student_logbackup1 WITH NONRECOVERYRESTORE LOG studentFROM student_logbackup WITH RECOVERY,STOPAT = Oct 5, 2006 6:00:05 PMRESTORE DATABASE studentFILE = student_data_1,FILE = stu
29、dent_data_2,FILEGROUP = student _FGFROM student _backupWITH NORECOVERYRESTORE LOG studentFROM student _logbackup1例4 显示还原完整数据库备份。RESTORE DATABASE student FROM student_1;例5还原完整数据库备份后还原差异备份。另外,该例还说明如何还原媒体上的另一个备份集。差异备份追加到包含完整数据库备份的备份设备上。RESTORE DATABASE student FROM student_1 WITH NORECOVERY;RESTORE DAT
30、ABASEstudent FROM student_1 WITH FILE = 2;例6还原完整数据库和事务日志,并将已还原的数据库移动到 C:Program FilesMicrosoft SQL ServerMSSQLData 目录下。RESTORE DATABASE student FROM student_1WITH NORECOVERY, MOVE student TO c:Program FilesMicrosoft SQL ServerMSSQLDatastudent.mdf, MOVE studentLog1 TO c:Program FilesMicrosoft SQL ServerMSSQLDatastudent.ldfRESTORE LOG studentFROM studentLog1WITH RECOVERY-