差异备份的恢复问题

2016-02-19 19:25 6 1 收藏

下面,图老师小编带您去了解一下差异备份的恢复问题,生活就是不断的发现新事物,get新技能~

【 tulaoshi.com - 编程语言 】

A : 情况是这样的 

create  database  test 

create  table  t(a  int) 

insert  into  test..t  select  1 

然后进行一次完整备份 

backup  database  test  to  disk='c:est.bak' 

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/bianchengyuyan/)

insert  into  test..t  select  2 

再进行一次完整备份 

backup  database  test  to  disk='c:est.bak' 

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/bianchengyuyan/)

insert  into  test..t  select  3 

此时用  restore  database  test  from  disk='c:est.bak'  with  file=1 

结果为  1,  此为正确 

用  restore  database  test  from  disk='c:est.bak'  with  file=2 

结果为  1, 

2  此也为正确 

当表t中为1,2,3的时候,在插入一条纪录结果为1,2,3,4然后进行一次差异备份 

backup  database  test  to  disk='c:est.bak'  with  differential 

然后往执行delete  from  t  删除所有纪录 

我现在想恢复最后的那次差异备份(结果为1,2,3,4),用语句改如何实现呢? 

---------------------------------------------------------------   

下面的是详细的过程,在我的电脑上测试成功:   

--清除环境,防止现有的数据影响测试结果 

exec  master..xp_cmdshell  'del  c:ext.bak' 

if  exists(select  *  from  master..sysdatabases  where  name='test') 

drop  database  test 

go   

--差异备份: 

backup  database  test  to  disk='c:est.bak'  with  differential  

--删除数据库 

drop  database  test 

--还原数据库和差异数据库备份 

--还原完整备份 

restore  database  test  from  disk='c:est.bak'  with  file=2,norecovery 

--还原差异备份的内容 

restore  database  test  from  disk='c:est.bak'  with  file=3,recovery   

--显示恢复后的数据 

select  *  from  test..t 

--------------------------------------------------------------- 

都已经说的好明白了,怎么可能会不行呢? 

前段时间我就做过类似程序的! 

必须说明的是:在恢复差异备份时,必须恢复最后一次的完整备份!!(切记) 

而且下面的两个语句必须同时执行,即放在一个事务中。   

restore  database  test  from  disk='c:est.bak'  with  file=离你要恢复的差异备份最近一次的完整备份号,norecovery   

restore  database  test  from  disk='c:est.bak'  with  file=你要还原的差异备份号,recovery   

具体的备份号可以从下面得到:(你可以认真研究一下backupfile,backupset,backmediaset,backupmediafamily几个表,可以发现规律) 

select  backup_start_date  as  备份时间,position  as  备份号, 

case  type    when  'D'  then  '完整备份'  when  'I'  then  '差异备份'  end  as  备份类型   

from  msdb..backupset  where  database_name='test'   

and  media_set_id  in   

(select  distinct  media_set_id  from  msdb..backupmediafamily  where  physical_device_name='c:est.bak') 

order  by  position 

如果还不行的话,可以给我留言~ 

--------------------------------------------------------------- 

---执行下面的序列: 

create  database  test 

go 

use  test 

go 

create  table  test..t(a  int) 

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/bianchengyuyan/)

insert  test..t  select  1 

backup  database  test  to  disk='c:est.bak' 

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/bianchengyuyan/)

insert  test..t  select  2 

backup  database  test  to  disk='c:est.bak' 

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/bianchengyuyan/)

insert  test..t  select  3 

insert  test..t  select  4 

backup  database  test  to  disk='c:est.bak'  with  differential 

delete  test..t 

go  

--下面开始恢复:  

restore  database  test  from  disk='c:est.bak'  with  file=2,norecovery  --对应你最后一次的完整备份

restore  database  test  from  disk='c:est.bak'  with  file=3  --对应你要还原的差异备份  

go  

select  *  from  test

来源:http://www.tulaoshi.com/n/20160219/1620948.html

延伸阅读
标签: 电脑入门
word是我们最常用的文档处理工具软件,不管是做一篇文档,还是写一份材料,都是十分方便和实用的。然而在编写文档过程中,些许失误总是难免。那么,有没有办法可以在出现失误的情况下,还能够恢复操作纳? 实际上,word提供了十分强大文档恢复和备份等功能。只要进行相应的设置和调整,便可以轻松还原到正确状态。 一、了解撤销键,用好撤销...
标签: ASP
<HTML <HEAD <TITLE数据库操作</TITLE <meta http-equiv="Content-Type" content="text/html; charset=gb2312" </HEAD <BODY <form method="post" name=myform <%if action="restore" then%<INPUT TYPE="hidden" name="action" value="resto...
联机备份的特点 联机备份又称为热备份,在备份的同时,数据库的用户可以进行操作,因此,数据库对应的物理文件的内容是不断变化的,对这些物理文件内容的更新是保留到有关操作已经写到重做日志文件中后再进行的。 用备份向导实现联机备份 (1)如图12.33所示。 (2)出现如图12.34所示的备份向导的界面。 (3)...
标签: 电脑入门
为了防止用户误操作导致系统故障。Windows优化大师向用户提供了备份与恢复恢复管理器。目前,Windows优化大师的自动优化、注册表清理、冗余DLL清理、ActiveX清理,垃圾文件清理,软件智能卸载,驱动智能备份、开机速度优化、系统个性设置中的右键菜单设置、其他设置选项中的系统文件备份与恢复、系统安全优化的附加工具中IE插件管理均已纳入统...
    冷备份数据必须是数据库不在open状态下。 以下步骤会给出详细的过程:     1): 关闭DB : shutdown immediate;     2):copy oradata目录下的所有文件, 包括数据文件, 控制文件,redo,等,还需要copy 密码文件 在目录ora92下 的database 中的pwd 文件.全部copy到一个安全目录中。...

经验教程

610

收藏

81
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部