您的位置:首页 > 数据库

Day 9:(15)备份与恢复--参考答案

2015-11-23 00:04 399 查看
实训要求:熟悉备份设备及sql server 2000的各种备份方式;熟悉获得备份历史信息的方法

要求:执行script.sql脚本

一、基本内容

1、在硬盘的d:\backup\backupdb目录中创建一个逻辑名为fullbackupdevice,物理名为fbd.bak的备份设备

   execute sp_addumpdevice 'disk' , 'fullbackupdevice' , 'd:\backup\backupdb\fbd.bak'

--   execute sp_dropdevice 'fullbackupdevice' ,'delfile' 'd:\backup\northword\fbd.bak'

2、在backupdb中,执行下面代码 create table tbl1(col int),对backupdb数据库进行一次完全备份,结果存放在fullbackupdevice中,备份结果名(name)为“backupdb完全备份1”,描述(description)

   信息为“2009年2月26日实训,对backupdb完全备份进行第一次完全备份”
backup database backupdb to fullbackupdevice 
with 
name = 'backupdb完全备份1' ,
description = '2009年2月26日实训,对backupdb完全备份进行第一次完全备份'

3、在backupdb中,执行下面代码create table tbl2(col int),对backupdb数据库进行一次差异备份,结果存放在fullbackupdevice(实训者自己创建)中,备份结果名(name)为“backupdb差异备份1”,

   描述(description)信息为“2009年2月26日实训,对backupdb完全备份进行第一次差异备份”
backup database backupdb to fullbackupdevice 
with differential,
name = 'backupdb差异备份1' ,
description = '2009年2月26日实训,对backupdb完全备份进行第一次差异备份'

4、在backupdb中,执行下面代码create table tbl3(col int),对backupdb数据库进行一次日志备份,结果存放在fullbackupdevice中,备份结果名(name)为“backupdb日志备份1”,描述(description)

   信息为“2009年2月26日实训,对backupdb完全备份进行第一次完全备份”
backup log backupdb to fullbackupdevice 
with
name = 'backupdb日志备份1' ,
description = '2009年2月26日实训,对backupdb完全备份进行第一次日志备份'

5、获得备份设备fullbackupdevice中的描述信息
restore labelonly from  fullbackupdevice
--获得媒体名和描述信息
restore headeronly  from  fullbackupdevice
--获得媒体名和描述信息
restore filelistonly  from  fullbackupdevice

6、使用之前的三次备份结果还原backupdb数据库。

   在backupdb中,执行下面代码create table tbl4(col int)

   提示:

   /****数据库崩溃时的抢救操作****/

   1、no_truncate backup log

   2、norecovery restore database 完全备份

   3、norecovery restore database或者log 差异备份、日志备份

   4、reconvery resotre log 1中的日志文件

    backup log backupdb to disk = 'd:\temp.bak'with no_truncate,format

    

   restore database backupdb from fullbackupdevice with file = 1,norecovery

   --可选  restore database backupdb from fullbackupdevice with file = 2,norecovery

   restore log backupdb from fullbackupdevice with file = 3,norecovery

   restore log backupdb from disk = 'd:\temp.bak' with recovery

   --检验
select * from backupdb.dbo.tbl1
select * from backupdb.dbo.tbl2
select * from backupdb.dbo.tbl3
select * from backupdb.dbo.tbl4

7、完全删除(从文件系统中)备份设备fullbackupdevice

   execute sp_dropdevice 'fullbackupdevice', 'delfile'

8、详述sql server 2000支持的四种备份方式(完全、差异、日志等)的优缺点和使用情况,完成下表:   

   备份方式     数据量    备份时间     对用户影响时间   对数据库结构的熟悉度          使用情况   

     完全         大        长              长               不要求           适用于作为其它备份的基础

     差异

     日志

     文件

9、将backupdb数据库的还原模式分别修改为完全、简单、大容量日志的,并同时进行完全、差异、日志备份,以验证不同的还原模式对

   备份的影响,完成如下表格:  

   数据库还原模式         完全备份          差异备份           日志备份

     完全                   可以             可以               可以

     简单

    大容量日志的

思考题:

1、有一个商业客户工作时间每日从9:00到17:00,每周日休息,请问给如何执行备份计划以保证数据安全?并验证你的备份计划

2、用户a从事数据库相关的开发工作,在工作用使用数据库crm,

数据库crm中有一个表格customers,定义如下:

create table customers

(

uid int identity(1,1),

fullname varchar(20),

createdate datetime

)

表格中有如下数据:

insert into customers

values ('aaa',dateadd(m,-1,getdate()))

insert into customers

values ('bbb',dateadd(m,-2,getdate()))

insert into customers

values ('ccc',dateadd(m,-3,getdate()))

用户a正在对该数据库进行调试,做了如下操作,

1、进行了一次完全备份

2、插入新记录

insert into customers

values ('ddd',dateadd(m,1-,getdate()))

3、更新数据

update customers

set fullname = 'abc'

where fullname = 'ddd'

4、删除记录

delete from customers

在调试后用户a发现由于delete没有where子句导致全部数据被删除,需要将

删除之前的记录找回。已知,用户a在调试之前已经做了一次完全备份,

那么a应该怎样做才能找回误删除的数据。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  sql server 数据库