数据库备份与还原命令综合实验.docx
《数据库备份与还原命令综合实验.docx》由会员分享,可在线阅读,更多相关《数据库备份与还原命令综合实验.docx(16页珍藏版)》请在冰豆网上搜索。
数据库备份与还原命令综合实验
数据库备份与还原命令综合实验
基础数据
D:
盘上有两个文件夹
SQLServer对象资源管理器中有两个对应数据库
--查看“学生信息表”中数据
usestudent_course
select*from学生信息表
第一步:
创建基本的备份设备;共3个:
backup_file1.bak,backup_file2.bak,backup_log.bak,分别保存完全数据备份;差异数据备份;日志文件备份。
但是,DBA疏忽,将“商品管理数据库”文件的完全数据备份和差异数据备份也保存到backup_file1.bak,backup_file2.bak中。
usemaster
go
execsp_addumpdevice'disk','backup_file1','D:
\back\backup_file1.bak'
execsp_addumpdevice'disk','backup_file2','D:
\back\backup_file2.bak'
execsp_addumpdevice'disk','backup_log','D:
\back\backup_log.bak'
第二步:
对数据库student_course和商品管理进行完全的数据库备份。
--将“商品管理数据库”备份到backup_file1
backupdatabase商品管理数据库tobackup_file1
--将“student_course”备份到backup_file1
backupdatabasestudent_coursetobackup_file1
第三步:
修改student_course数据库。
Usestudent_course
insertinto学生信息表(学号,姓名,性别,专业班级)values('666','张飞','男','1')
第四步:
对这两个数据库进行差异数据库的备份工作。
usemaster
--将“商品管理数据库”备份到backup_file2
backupdatabase商品管理数据库tobackup_file2WITHDIFFERENTIAL
--将“student_course”备份到backup_file2
backupdatabasestudent_coursetobackup_file2WITHDIFFERENTIAL
第五步:
再次插入两条数据,每次插入数据进行一次日志文件的备份工作。
Usestudent_course
--向学生信息表中插入数据,对student_course数据库进行日志备份
insertinto学生信息表(学号,姓名,性别,专业班级)values('777','吕布','男','2')
backuplogstudent_coursetobackup_logwithnoinit
Usestudent_course
--(这里的参数指定init和NO_TRUNCATE,表示追加性的和允许在数据库损坏时备份日志)
insertinto学生信息表(学号,姓名,性别,专业班级)values('888','貂蝉','女','2')
backuplogstudent_coursetobackup_logwithnoinit
第六步:
下面查看第二个备份的student_course数据库备份相关信息,学习withfile参数的用法。
usemaster
RESTOREFILELISTONLYfrombackup_file1WITHFILE=2
RESTOREFILELISTONLYfrombackup_file2WITHFILE=2
--返回由有关给定备份设备所标识的备份媒体的信息组成的结果集
RESTORELABELONLYfrombackup_file1withfile=2
RESTORELABELONLYfrombackup_file2withfile=2
RESTORELABELONLYfrombackup_logwithfile=1
第七步:
完全数据备份恢复实验。
usemaster
--首先删除数据库
dropdatabasestudent_course
--然后再创建数据库
createdatabasestudent_course
--数据备份的恢复工作
RESTOREDATABASEstudent_coursefrombackup_file1WITHFILE=2,replace
第八步:
差异数据备份恢复实验。
--还是先删除数据库,而后新建数据库
usemaster
--首先删除数据库
dropdatabasestudent_course
--然后再创建数据库
createdatabasestudent_course
--首先还原完全数据恢复,但是先必须挂起来
RESTOREDATABASEstudent_coursefrombackup_file1WITHFILE=2,noRECOVERY,replace
--然后恢复差异性数据库的备份
RESTOREDATABASEstudent_coursefrombackup_file2WITHFILE=2,RECOVERY,replace
--至此,张飞同学被恢复。
注意NORECOVERY与RECOVERY的差别
第九步:
以日志文件形式还原数据库。
--还是先删除数据库,而后新建数据库
usemaster
--首先删除数据库
dropdatabasestudent_course
--然后再创建数据库
createdatabasestudent_course
----首先还原完全数据恢复,但是先必须挂起来
usemaster
RESTOREDATABASEschoolfrombackup_file1WITHFILE=2,noRECOVERY,replace
--然后查看一下日志文件的备份具体时间信息.
RESTOREHEADERONLYfrombackup_log