SKY外语计算机学习
标题: 实验:数据库备份和恢复以及创建数据库快照并恢复数据 [打印本页]
作者: 小卢_铃 时间: 2013-9-28 23:52
标题: 实验:数据库备份和恢复以及创建数据库快照并恢复数据
作者:小卢 日期: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
作者: 吣丶 时间: 2013-9-29 00:02
本帖最后由 吣丶 于 2013-9-29 00:04 编辑
多线程能操作数据库么 ?
占楼
楼下是大笨蛋
~~~↓~~~↓~~~↓~~~↓~~~↓
~~~↓~~~↓~~~↓~~~↓~~~↓
~~~↓~~~↓~~~↓~~~↓~~~↓
作者: SKY流氓兔 时间: 2013-9-29 00:03
0 0 虽然看不懂。。不过好厉害的样子!撒花~辛苦了~~~
作者: Kill 时间: 2013-9-29 00:03
这么详细的图文操作,而且附有代码,学习数据朋友可以参照练习下。
欢迎光临 SKY外语计算机学习 (http://join.skywj.com/) |
Powered by Discuz! X2.5 |