作者:小卢 日期:2013-09-28 原文地址:http://www.skywj.com/thread-9101-1-1.html
l 场景 当数据库由于某种原因出现故障时需要备份和恢复数据库
l 要求:编写详细创建数据库的步骤,还需截取最终创建好的数据库的属性界面图。
本实验的主要任务及执行步骤如下: 1、使用T-SQL语句备份数据库,备份过程要求如下:
(1)星期一执行的操作:创建数据库和数据表: create database TestDataBack_学号 go use TestDataBack_学号 go create table a_学号(a1 int,a2 int) create table b_学号(b1 int ,b2 int)
执行上述操作后,创建备份设备 TestBackDevice_学号,物理路径:\Testback_学号.bak,然后创建完整数据库备份,并把备份内容放置于备份设备中。编写详细的备份步骤与截取主要的备份过程图,并把T-SQL脚本复制其后。
(1)--创建数据库、表 create databaseTestDataBack_15 go use TestDataBack_15 go create tablea_15(a1 int,a2 int) create tableb_15(b1 int ,b2 int)
(2)--创建逻辑设备: EXEC sp_addumpdevice 'disk', 'TestBackDevice_15','D:\Testback_15.bak';
(3)--创建完整数据库备份 ALTER DATABASETestDataBack_15 SET RECOVERY FULL
(4)执行完整数据库备份 backup databaseTestDataBack_15 todisk='D:\Testback_15.bak' with name='星期一-完整备份' 已为数据库'TestDataBack_15',文件'TestDataBack_15' (位于文件1 上)处理了176 页。 已为数据库'TestDataBack_15',文件'TestDataBack_15_log' (位于文件1 上)处理了5 页。 BACKUP DATABASE 成功处理了181 页,花费0.647 秒(2.185 MB/秒)。
(2)星期二执行的操作:新增数据到a表 insert into a_学号values(1,2 insert into a_学号values(3,4)
执行上述操作后,对数据库进行第一次差异备份和第一次日志备份。编写详细的备份步骤与截取主要的备份过程图,并把T-SQL脚本复制其后。
insert intoa_15 values(1,2) insert into a_15 values(3,4)
1) 创建第一次差异备份: backup database TestDataBack_15 to disk='D:\Testback_15.bak' with differential, name='星期二-差异备份' 已为数据库'TestDataBack_15',文件'TestDataBack_15' (位于文件2 上)处理了144 页。 已为数据库'TestDataBack_15',文件'TestDataBack_15_log' (位于文件2 上)处理了5 页。 BACKUP DATABASE WITH DIFFERENTIAL 成功处理了149 页,花费0.465 秒(2.491 MB/秒)。
2)创建第一次日志备份 backup log TestDataBack_15 to disk='D:\Testback_15.bak' with name='星期二-日志备份'
(3)星期三执行的操作:新增数据到b_学号表
insert into b_学号values(1,2) insert into b_学号values(3,4)
执行上述操作后,对数据库进行第二次差异备份和第二次日志备份。编写详细的备份步骤与截取主要的备份过程图,并把T-SQL脚本复制其后。
1)新增数据到b_15 insert into b_15 values(1,2) insert into b_15 values(3,4)
2) 第二次差异备份和第二次日志备份 backup databaseTestDataBack_15 to disk='D:\Testback_15.bak' with differential,
name='星期三-差异备份'
backup log TestDataBack_15 to disk='D:\Testback_15.bak' with name='星期三-日志备份'
(4)星期四执行的操作:新增数据到a_学号和b_学号表 insert into a _学号values(5,6) insert into b _学号values(5,6)
执行上述操作后,对数据库进行第三次差异备份和第三次日志备份、第四次日志备份。编写详细的备份步骤与截取主要的备份过程图,并把T-SQL脚本复制其后。
1) 新增数据 insert intoa_15 values(5,6) insert into b_15 values(5,6)
2) 第三次差异备份和第三次日志备份、第四次日志备份 backup databaseTestDataBack_15 to disk='D:\Testback_15.bak' with differential, name='星期四-差异备份' backup logTestDataBack_15 todisk='D:\Testback_15.bak' with name='星期四-日志备份1'
backup log TestDataBack_15 to disk='D:\Testback_15.bak' with name='星期四-日志备份2'
(5)查看备份记录,并截取相关备份记录图。
2、使用T-SQL语句恢复数据库,其恢复过程要求如下:
(1)恢复到星期一执行的操作,即有数据库和两张空表a_学号和b_学号。(恢复完后通过T-SQL语句查询表数据)
1)创建尾日志备份: backup logTestDataBack_15 todisk='D:\Testback_15.bak' withnorecovery,
name='尾日志备份',no_truncate
2)恢复到星期一执行的操作 restore databaseTestDataBack_15 fromdisk='D:\Testback_15.bak' withfile=1,replace
(2)恢复到星期二执行的操作,即有数据库和两张表a_学号和b_学号,其中a_学号中有两条数据,b_学号中无数据。(恢复完后通过T-SQL语句查询表数据)
1)创建尾日志备份: backup logTestDataBack_15 todisk='D:\Testback_15.bak' withnorecovery,
name='尾日志备份',no_truncate
2)恢复到星期二执行的操作: restore databaseTestDataBack_15 fromdisk='D:\Testback_15.bak' withfile=1,norecovery,replace restore databaseTestDataBack_15 fromdisk='D:\Testback_15.bak' withfile=2,replace
查询:
select *from a_15 select * from b_15
(3)恢复到星期三执行的操作,即有数据库和两张表a_学号和b_学号,其中a_学号和b_学号中各有两条数据。(恢复完后通过T-SQL语句查询表数据)
1)创建尾日志备份: backup logTestDataBack_15 todisk='D:\Testback_15.bak' withnorecovery,
name='尾日志备份',no_truncate 2)恢复到星期三执行的操作 restore databaseTestDataBack_15 fromdisk='D:\Testback_15.bak' withfile=1,norecovery,replace restore databaseTestDataBack_15 fromdisk='D:\Testback_15.bak' withfile=4,replace
3)查询 select * from a_15 select * from b_15
(4)恢复到星期四执行的操作,即有数据库和两张表a_学号和b_学号,其中a_学号和b_学号中各有三条数据。(恢复完后通过T-SQL语句查询表数据)
1)创建尾日志备份: backup logTestDataBack_15 todisk='D:\Testback_15.bak' withnorecovery,
name='尾日志备份',no_truncate
2)恢复到星期四执行的操作 restore databaseTestDataBack_15 fromdisk='D:\Testback_15.bak' withfile=1,norecovery,replace restore databaseTestDataBack_15 fromdisk='D:\Testback_15.bak' withfile=6,replace
3)查询 select *from a_15 select * from b_15
3、删除逻辑备份设备:TestBackDevice_学号 exec sp_dropdevice 'TestBackDevice_15' ,'delfile' 已成功删除物理文件'D:\Testback_15.bak'。 设备已除去。
4、使用T-SQL语句创建数据库快照以及从数据库快照中恢复数据。 (1)在第2题恢复到星期四执行的操作后,对数据库TestDataBack _学号使用T-SQL语句创建数据库快照TestDataBack_dbss_学号,其物理路径为D:\TestDataBack_dbss_学号.ss。
(1)创建数据库快照 create database TestDataBack_dbss_15on (name=TestDataBack_15,filename='D:\TestDataBack_dbss_15.ss') as snapshot of TestDataBack_15
(2)创建数据库快照后,使用T-SQL语句查看两个数据库(即数据库TestDataBack _学号和数据库快照TestDataBack_dbss_学号)中表a_学号的数据。
use TestDataBack_15 go select * froma_15
use TestDataBack_dbss_15 go select * froma_15
(3)向数据表b_学号中插入数据 insert into b _学号values(7,8) insert into b_15 values(7,8)
(4)查询一下b_学号中的数据
select * fromb_15
(5)从数据库快照中恢复数据库即去除第3小题向b_学号中插入的数据,恢复之后b_学号中只有三条数据。 restore database TestDataBack_15 from database_snapshot ='TestDataBack_dbss_15' select * fromb_15
5、删除数据库快照 USE master GO DROP DATABASE TestDataBack_dbss_15 GO
|