实验项目名称:数据库的备份和恢复
一、实验目的
熟悉并掌握数据库备份和恢复的原理和操作。
二、实验要求
掌握存储设备的创建、使用。掌握数据库中数据的导入导出操作。掌握数据上的备
份和恢复操作。掌握数据库备份策略的制定原理和具体操作。
三、实验步骤
1、开始→程序→Microsoft SQL Server→SQL Server Management Stdio。
2、 在“连接到服务器”对话框中,选择“Windows 身份验证”,点击“连接”,
进入 SQL Server Management Stdio 操作界面。
3、 创建 students 数据库。利用如下 sql 语句在 students 数据库中创建表(具
体含义见课本 P37 页)。
CREATE TABLE Student (
Sno char ( 7 ) PRIMARY KEY,
Sname char ( 10 ) NOT NULL,
Ssex char (2),
Sage tinyint ,
Sdept char (20)
)
CREATE TABLE Course (
Cno char(10) NOT NULL,
Cname char(20) NOT NULL,
Ccredit tinyint ,
Semester tinyint,
PRIMARY KEY(Cno)
)CREATE TABLE SC
(
Sno char(7) NOT NULL,
Cno char(10) NOT NULL,
Grade tinyint,
XKLB char(4) ,
PRIMARY KEY ( Sno, Cno ) ,
FOREIGN KEY (Sno) REFERENCES Student (Sno),
FOREIGN KEY (Cno) REFERENCES Course (Cno)
)
4、 数据库的备份与恢复实验
分别采用SSMS 工具和T-SQL语句,利用第10章上机练习建立的“学生数据库”和第11章上机练习建立的表,完成下列各题。
1.利用SSMS工具按顺序完成下列操作:
( 1)创建永久备份设备: backup1, backup2。
(2)对“学生数据库”进行一次完整备份,并以追加的方式备份到 backup1设备上。
(3)执行下述语句删除“学生数据库”中到SC表:DROP TABLE SC
(4)利用backup1设备上对“学生数据库”进行的完整备份,恢复出“学生数据库”
(5)查看SC表是否被恢复出来了。
2.利用SSMS工具按顺序完成下列操作:
(1 )对“学生数据库”进行一次完整备份,并以覆盖的方式备份到 backup1设备上,覆盖掉backup1设备上已有的备份内容。
(2)执行下述语句在Course表中插入一行新记录:
Insert into course values('c201', '离散数学', 3,4)
(3)将“学生数据库”以覆盖的方式差异备份到backup2设备上。(4)执行下述语句删除新插入的记录:
DELETE FROM Course WHERE Cno = 'C201'
( 5 )利用backupl和 backup2备份设备对“学生数据库”的备份,恢复“学生数据库”。完全恢复完成后,在Course表中有新插入的记录吗?为什么?
3.利用SSMS工具按顺序完成下列操作:
(1)将“学生数据库”的恢复模式改为“完整”的。
(2)对“学生数据库”进行一次完整备份,并以覆盖的方式备份到 backup1设备上。
(3)执行下述语句向Course表中插入一行新记录:
Insert into course values('c202', '编译原理', 5,4)
(4)对“学生数据库”进行一次差异备份,并以追加的方式备份到backup1设备上。
(5)执行下述语句删除新插入的记录:
DELETE FROM Course WHERE Cno = 'C202'
(6)对“学生数据库”进行一次日志备份,并以覆盖的方式备份到backup2设备上。
(7)利用backupl和 backup2备份设备恢复“学生数据库”,恢复完成后,在Course表中有新插入的记录吗?为什么?
4.利用备份和恢复数据库的T-SQL语句按顺序完成下列操作:
( 1)新建备份设备back1和 back2,它们均存放在D:\BACKUP文件夹下(假设此文件夹已存在) 对应的物理文件名分别为back1.bak和 back2.bak。
use shiyan4
go
exec sp_addumpdevice 'disk','back1','D:\BACKUP';
exec sp_addumpdevice 'disk','back2','D:\BACKUP';
(2)对“学生数据库”进行一次完整备份,以覆盖的方式备份到 back1 上。
( 3)删除SC表。
Drop table sc
( 4)对“学生数据库”进行一次差异备份,以追加的方式备份到 back1 上。
(5)删除“学生数据库”。
(6)利用back1备份设备恢复“学生数据库”的完整备份,并在恢复完成之后使数据库成为可用状态。
(7)在SSMS 工具的对象资源管理器中查看是否有“学生数据库”?为什么?如果有,展开此数据库中的“表”节点,查看是否有SC表?为什么?
有Students数据库,因为进行的是完整备份。展开数据库节点的时候没有Sc表。因为差异备份没有进行恢复。
(8)再次利用backl备份设备恢复“学生数据库”,首先恢复完整备份并使恢复后的数据库成为正在恢复状态,然后再恢复差异备份并使恢复后的数据库成为可用状态。
( 9 )在SSMS 工具的对象资源管理器中展开“学生数据库”和其下的“表”节点,这次是否有SC表?为什么?
存在,因为回复了完整的备份。
(10)对“学生数据库”进行一次完整备份,直接备份到D:\BACKUP文件夹下,备份文件名为:students.bak。
( 11 )对“学生数据库”进行一次事务日志备份,以追加的方式备份到back2设备上。
要求:仔细阅读操作要求, 按要求用 SSMS 工具或 T-SQL 语句实现,请记录结果
并分析原因。