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应该怎样做才能找回误删除的数据。
要求:执行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应该怎样做才能找回误删除的数据。
相关文章推荐
- Android之获取手机上的图片和视频缩略图thumbnails
- 数据库链接字符串查询网站
- DB2实例管理
- DB2实例管理
- 保障MySQL数据安全的14个最佳方法
- mysql问答汇集
- 创建一个空的IBM DB2 ECO数据库的方法
- Access 2000 数据库 80 万记录通用快速分页类
- 开通一个数据库失败的原因的和解决办法
- 一个简单的asp数据库操作类
- CentOS下DB2数据库安装过程详解
- EasyASP v1.5发布(包含数据库操作类,原clsDbCtrl.asp)第1/2页
- sql2008 还原数据库解决方案
- Oracle 数据库自动存储管理-安装配置
- Oracle 数据库 临时数据的处理方法
- 数据库分页查询语句数据库查询
- 最近比较流行的数据库挂马
- Oracle 手动创建数据库步骤详解
- 分割超大Redis数据库例子