实验八数据库的备份与恢复.docx
- 文档编号:17978767
- 上传时间:2023-08-05
- 格式:DOCX
- 页数:16
- 大小:263.83KB
实验八数据库的备份与恢复.docx
《实验八数据库的备份与恢复.docx》由会员分享,可在线阅读,更多相关《实验八数据库的备份与恢复.docx(16页珍藏版)》请在冰点文库上搜索。
实验八数据库的备份与恢复
实验八数据库的备份与和恢复
一、实验目的:
1.掌握数据库备份和恢复的概念
2.熟练掌握数据库备份和恢复的实现方法
实验环境:
SQLServer2005
二、实验内容及步骤
说明:
本示例用例的表结构如下所示:
Student(sno,sname,sex,sage,dept,oldgrade,advisor)
Teacher(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(开课系),credits(学分)
SC—成绩:
sno(学号),cno(课程号),grade(成绩)
1.利用企业管理器实现数据库备份和恢复
(1)创建、查看和删除备份设备
●
创建备份设备
图1图2
在企业管理器中,扩展要操作的SQL服务器,在管理文件夹中找到备份文件夹。
用鼠标右键单击该文件夹后,在弹出的菜单中选择“新建备份设备’项,如图1所示。
随后会出现如图2所示的备份设备属性对话框。
在备份设备属性对话框中,执行下列操作:
输入备份设备的逻辑名称;确定备份设备的文件名;单击“确定”按钮。
在确定备份设备的文件名时,需要单击文件名栏最右边的“…”按钮,并在弹出的文件名对话框中确定或改变备份设备的缺省磁盘文件路径和文件名。
●查看备份设备的相关信息
查看备份设备的相关信息时,需要执行的操作是:
在企业管理器中扩展服务器,选择管理文件夹和备份文件夹,在细节窗口中找到要查看的备份设备;用鼠标右键单击备份设备,在弹出的菜单上选择“属性”项,会弹出与图3-82相似的备份设备属性对话框;用鼠标单击设备名称右边的“查看”按钮,可弹出备份设备的信息框,从中可以得到备份数据库及备份创建日期等信息。
●删除备份设备
如果要删除一个不需要的备份设备,首先,在企业管理器中该备份设备,并用鼠标右键单击它;在弹出的菜单中选择“删除”项;在确认删除对话框中,单击“确认”按钮。
(2)备份数据库
●进入数据库备份对话框
在SQLServer的企业管理器中,用鼠标右键单击要备份的数据库;在弹出的菜单上选择“所有任务”中的“备份数据库”项,则会弹出一个数据库备份对话框。
该对话框中有常规和选项两个页面,“常规”选项卡的界面如图3-83所示,“选项”选项卡的界面入图3-84所示。
图3图4
●在常规选项卡中完成以下操作
在“数据库”框中选择要备份的数据库;在“名称”框中备份取一个便于识别的名称;选择备份的方法,可选择完全备份、差异备份(增量备份)、事务日志、文件或文件组之一;为磁盘备份设备或备份文件选择目的地,即通过列表右边的“添加”按钮或“删除”确定备份文件的存放位置,列表框中显示要使用的备份设备或备份文件;在“重写”栏中选择将备份保存到备份设备时的覆盖模式;在“调度”栏中设置数据库备份计划。
覆盖模式通过两个单选项指定:
“追加到媒体”为将数据库备份追加在备份设备已有内容之后;“重写现有媒体”为用数据库备份覆盖备份设备中原有的内容,原有内容将统统丢失。
●设定备份计划需要执行的操作
先要选中调度复选框,并单击文本框右边的“…”按钮,就会出现如图5所示的编辑备份计划对话框,在对话框中可以设置以下4种备份类型:
1)SQLServer代理启动时自动启动:
每当SQLServerAgent启动工作时,都自动进行数据库备份。
2)每当CPU闲置时启动:
每当CPU空闲时进行数据库备份。
3)一次:
设定进行数据库备份的一次性时间。
4)反复出现:
按一定周期进行数据库备份。
当选择“反复出现”备份类型后,还要用鼠标单击位于对话框右下方的“更改”按钮,在“编辑反复出现的作业调度”对话框中,设置备份的发生频率、时间、持续时间等参数,如图6所示。
图5图6
●设置选项页面内容
数据库备份对话框的选项页面如图4所示。
在“选项”卡中,需要设置以下内容:
1)通过设置“完成后验证备份”复选框决定是否进行备份设备验证。
备份验证的目的是为了保证数据库的全部信息都正确无误地保存到备份设备上。
通过备份验证,用户可以检查备份设备的性能。
从而可以在以后的工作中大胆地使用该备份设备,而不必担心是否有潜在的危险。
2)通过设置“检查媒体集名称和备份集到期时间”复选框决定是否检查备份设备上原有内容的失效日期。
只有当原有内容失效后,新的备份才能覆盖原有内容。
3)通过设置“初始他并标识媒体”复选框初始化备份设备。
备份设备的初始化相当于磁盘格式化,必须是在使用的覆盖模式是重写时,才可以初始化备份设备。
4)在完成了常规页面和选项页面中的所有设置之后,单击“确定”按钮,并在随后出现的数据库备份设备成功信息框中单击“确定”按钮。
(3)SQLServer的数据恢复方法
●调出数据库恢复对话框
在SQLServer2000的企业管理器中,用鼠标右键单击要进行数据恢复的数据库。
在弹出的菜单中选择“所有任务”中的“还原数据库”项,如图7所示。
屏幕上会出现数据库恢复对话框,该对话框中有两个页面;常规页面和选项页面。
图7
●常规页面
常规页面中有3个单选按钮,分别对应3种数据库恢复方式:
“数据库”按钮说明恢复数据库;“文件组或文件”按钮说明恢复数据使用的文件组或文件;“从设备”按钮说明根据备份设备中包含的内容恢复数据库。
不同的选项,其选项卡和设置恢复的方法也不同。
1)恢复数据库
选择恢复“数据库”单选项后,常规选项卡界面如图7所示。
恢复数据库的操作步骤为:
选择还原栏中的“数据库”单选项,说明进行恢复数据库工作;在参数栏中,选择要恢复的数据库名和要还原的第一个备份文件;在备份设备表中,选择数据库恢复要使用的备份文件,即在单击还原列中的小方格,小方格出现“√”号则表明已选中;单击“确定”按钮。
2)恢复文件或文件组
如果选择恢复“文件组或文件”单选项,则常规选项卡如图8所示。
图8
在参数栏中选择要恢复的数据库名;如果要进行部分恢复或有限制的恢复,可选中“选择备份集中的子集”复选框,使它有效,并单击它右边的“选择条件”按钮,在弹出的过滤备份设备对话框中设置选择条件;在备份设备表中选择数据库恢复使用的备份设备,即单击Restore列中的小方格,使之出现“√”号;单击“确定”按钮。
3)从备份设备中恢复
如果选择了从备份设备中恢复单选项,则常规卡如图9所示。
参数设置时,首先单击位于窗口右边的“选择设备”按钮,并在弹出框中选择备份设备;设置还原类型单选钮。
还原类型有两种:
“还原备份集”选项,一般应选择该项;“读取备份集信息并添加到备份历史记录”选项,获取备份设备信息和增加备份历史。
如果选择了还原备份集的类型,还应选择恢复方式。
恢复方式通过4个单选项实现,它们是:
“数据库-完全”选项,从完全数据库备份中恢复;“数据库-差异”选项,从增量备份中恢复;“事务日志”选项,从事务日志备份文件中恢复;“文件或文件组”选项,从文件或文件组中恢复。
●选项页面
数据库还原的“选项”卡如图10所示。
页面中使用3个复选框设置附加特征:
“在还原每个备份后均弹出磁带(如果有)”选项,表示是否在恢复完每个备份之后都弹出磁带,它仅对磁带备份设备有效;“在还原每个备份前提示”选项,表示是否在恢复每个备份之前提示用户;“在现有的数据库上强制还原”选项,表示恢复过程中是否强行覆盖数据库中现有的数据。
图9图10
在“选项”页中还列出了数据库的原文件名和恢复后的新文件名,缺省时两者是一样的,可以直接在表中修改恢复后的新文件名。
此外,还要设置数据库恢复完成状态。
当完成了“常规”卡和“选项”卡的参数设置后,可单击下面的“确定”按钮。
SQLServer就开始了数据库恢复操作,屏幕上也会显示恢复进度的对话框,在对话框中显示恢复的进度。
2.利用T-SQL语言实现备份和恢复数据库
(1)备份数据库
备份数据库的语法格式:
●备份整个数据库:
BACKUPDATABASE{database_name|@database_name_var}
TO
[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={'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]]
]
●备份特定的文件或文件组:
BACKUPDATABASE{database_name|@database_name_var}
TO
[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={'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]]
]
●备份一个事务日志:
BACKUPLOG{database_name|@database_name_var}
{
TO
[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={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]]
]
}
以上参数说明祥见SQLServer联机丛书。
[例1]创建用于存放student数据库完整备份的逻辑备份设备。
//Createalogicalbackupdeviceforthefullstudentbackup.
USEstudent
EXECsp_addumpdevice'disk','student_1',
DISK='c:
\ProgramFiles\MicrosoftSQLServer\MSSQL\BACKUP\student_1.dat'
//Backupthefullstudentdatabase.
BACKUPDATABASEstudentTOstudent_1;
[例2]创建了一个数据库和日志的完整备份。
将数据库备份到称为student_2的逻辑备份设备上,然后将日志备份到称为studentLog1的逻辑备份设备上。
说明创建逻辑备份设备需要一次完成。
USEstudent
EXECsp_addumpdevice'disk','student_2',
'c:
\ProgramFiles\MicrosoftSQLServer\MSSQL\BACKUP\student_2.dat'
USEstudent
EXECsp_addumpdevice'disk','studentLog1',
'c:
\ProgramFiles\MicrosoftSQLServer\MSSQL\BACKUP\studentLog1.dat'
BACKUPDATABASEstudentTOstudent_2
BACKUPLOGstudent
TOstudentLog1;
(2)恢复数据库
恢复数据库的语法格式:
●恢复整个数据库:
RESTOREDATABASE{database_name|@database_name_var}
[FROM
[WITH
[RESTRICTED_USER]
[[,]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_file_name']
[,...n]
[[,]KEEP_REPLICATION]
[[,]{NORECOVERY|RECOVERY|STANDBY=undo_file_name}]
[[,]{NOREWIND|REWIND}]
[[,]{NOUNLOAD|UNLOAD}]
[[,]REPLACE]
[[,]RESTART]
[[,]STATS[=percentage]]
]
●恢复数据库的部分内容:
RESTOREDATABASE{database_name|@database_name_var}
[FROM
[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_file_name']
[,...n]
[[,]NORECOVERY]
[[,]{NOREWIND|REWIND}]
[[,]{NOUNLOAD|UNLOAD}]
[[,]REPLACE]
[[,]RESTRICTED_USER]
[[,]RESTART]
[[,]STATS[=percentage]]
]
●恢复特定的文件或文件组:
RESTOREDATABASE{database_name|@database_name_var}
[FROM
[WITH
[RESTRICTED_USER]
[[,]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_file_name']
[,...n]
[[,]NORECOVERY]
[[,]{NOREWIND|REWIND}]
[[,]{NOUNLOAD|UNLOAD}]
[[,]REPLACE]
[[,]RESTART]
[[,]STATS[=percentage]]
]
●恢复事务日志:
RESTORELOG{database_name|@database_name_var}
[FROM
[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_REPLICATION]
[[,]{NORECOVERY|RECOVERY|STANDBY=undo_file_name}]
[[,]{NOREWIND|REWIND}]
[[,]{NOUNLOAD|UNLOAD}]
[[,]RESTART]
[[,]STATS[=percentage]]
[[,]STOPAT={date_time|@date_time_var}
|[,]STOPATMARK='mark_name'[AFTERdatetime]
|[,]STOPBEFOREMARK='mark_name'[AFTERdatetime]
]
]
参数说明祥见SQLSer
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 实验 数据库 备份 恢复
![提示](https://static.bingdoc.com/images/bang_tan.gif)