设为首页收藏本站

SKY外语、计算机论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 7762|回复: 3
打印 上一主题 下一主题

实验:数据库备份和恢复以及创建数据库快照并恢复数据

[复制链接]

22

主题

8

好友

1898

积分

超级版主

Rank: 8Rank: 8

生肖
星座
天秤座
性别

最佳新人 活跃会员 热心会员 灌水之王 突出贡献 优秀版主

跳转到指定楼层
楼主
发表于 2013-9-28 23:52:46 |只看该作者 |倒序浏览
作者:小卢 日期: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








分享到: QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
分享淘帖0 收藏收藏0 评分评分
人都有一段故事,没有精彩与否,只有感人与否

6

主题

0

好友

172

积分

版主

Rank: 7Rank: 7Rank: 7

性别
保密
沙发
发表于 2013-9-29 00:02:50 |只看该作者
本帖最后由 吣丶 于 2013-9-29 00:04 编辑

多线程能操作数据库么 ?
占楼
楼下是大笨蛋
~~~↓~~~↓~~~↓~~~↓~~~↓
~~~↓~~~↓~~~↓~~~↓~~~↓
~~~↓~~~↓~~~↓~~~↓~~~↓
回复

使用道具 评分 举报

11

主题

10

好友

597

积分

版主

吉祥物

Rank: 7Rank: 7Rank: 7

自我介绍
努力减肥的胖兔子,以及微博已长草!
性别

最佳新人 活跃会员 灌水之王

板凳
发表于 2013-9-29 00:03:22 |只看该作者
0 0  虽然看不懂。。不过好厉害的样子!撒花~辛苦了~~~
喜欢坐在窗台看。。。天空。。是那么的耀眼。。。。
回复

使用道具 评分 举报

150

主题

5

好友

1179

积分

管理员

Rank: 9Rank: 9Rank: 9

性别
保密

最佳新人 活跃会员 推广达人 宣传达人 突出贡献 优秀版主 论坛元老

地板
发表于 2013-9-29 00:03:30 |只看该作者
这么详细的图文操作,而且附有代码,学习数据朋友可以参照练习下。
回复

使用道具 评分 举报

您需要登录后才可以回帖 登录 | 立即注册


手机版|SKY外语计算机学习 ( 粤ICP备12031577 )    

GMT+8, 2024-4-26 04:03 , Processed in 0.124878 second(s), 28 queries .

回顶部