学院首页 软件应用 编程开发 创意设计 认证培训 软件论坛
ASP ASP.NET PHP JSP SQL MYSQL Java VB

您的位置:学院 >> 编程开发 >> MYSQL >> 数据库中有关差异备份的恢复问题


数据库中有关差异备份的恢复问题


A : 情况是这样的















create  database  test  
create  table  t(a  int)  
insert  into  test..t  select  1

然后进行一次完整备份

backup  database  test  to  disk='c:\test.bak'  
insert  into  test..t  select  2

再进行一次完整备份

backup  database  test  to  disk='c:\test.bak'  
insert  into  test..t  select  3

此时用

restore  database  test  from  disk='c:\test.bak'  with  file=1

结果为 1, 此为正确

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

结果为 1,

2 此也为正确

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

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

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

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

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

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

exec  master..xp_cmdshell  'del  c:\text.bak'  
if  exists(select  *  from  master..sysdatabases  where  name='test')  
drop  database  test  
go

--创建数据库

create  database  test 
go

--打开创建的数据

use  test  
go

--创建测试表

create  table  t(a  int)

--切换回master数据库

use  master  
go

--插入数据1

insert  into  test..t  select  1  
go

--然后进行一次完整备份

backup  database  test  to  disk='c:\test.bak'  
go

--插入数据2

insert  into  test..t  select  2  
go

--再进行一次完整备份

backup  database  test  to  disk='c:\test.bak'  
go

--插入3,4

insert  into  test..t  select  3  
insert  into  test..t  select  4  
go

--差异备份:

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

--删除数据库

drop  database  test

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

--还原完整备份

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

--还原差异备份的内容

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

--显示恢复后的数据

select  *  from  test..t

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

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

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

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

restore  database  test  from  disk='c:\test.bak'  with  file=离你要恢复的差异备份最近一次的完整备份号,
norecovery    
restore  database  test  from  disk='c:\test.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:\test.bak')  
order  by  position

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

---执行下面的序列:

create  database  test  
go  
use  test  
go  
create  table  test..t(a  int)  
insert  test..t  select  1  
backup  database  test  to  disk='c:\test.bak' 
insert  test..t  select  2  
backup  database  test  to  disk='c:\test.bak'  
insert  test..t  select  3  
insert  test..t  select  4  
backup  database  test  to  disk='c:\test.bak'  with  differential  
delete  test..t  
go

--下面开始恢复:

restore  database  test  from  disk='c:\test.bak'  with  file=2,norecovery  --对应你最后一次的完整备份
restore  database  test  from  disk='c:\test.bak'  with  file=3  --对应你要还原的差异备份   
go   
select  *  from  test
技术文章快速查找

栏目导航
软件应用
·操作系统 ·杀毒防黑 ·应用软件
·聊天软件 ·网络软件  
Web开发
·ASP ·JavaScript ·CGI
·JSP ·VbScript ·Web服务器
·PHP ·XML  
开发语言
·VB ·VC ·ASP.NET
·Java ·C/C++ ·Delphi
数据库开发
·MySQL ·SQL/Access ·PowerBuilder
·Oracle ·DB2  
网站设计
·Flash ·Dreamweaver ·HTML/CSS
·Fireworks ·FrontPage  
平面设计
·Photoshop ·CorelDraw ·AutoCAD
·FreeHand ·Illustrator ·3DsMAX
媒体动画
·Director ·Authorware ·Maya
·视频处理    


相关软件 产品库推荐
·笔记本 ·台式机 ·服务器
·数码相机 ·手机 ·GPS
·DV摄像机 ·MP3 ·MP4
·CPU ·硬盘 ·内存
·主板 ·显卡 ·显示器
·打印机 ·投影机 ·路由器

还没人留言,抢个先,哈哈!
对"数据库中有关差异备份的恢复问题"的评论 - 快速回贴
内容:
  [完成后可按Ctrl+Enter发布]

百度中 数据库中有关差异备份的恢复问题 相关内容
Google搜索中 数据库中有关差异备份的恢复问题 相关内容
雅虎中 数据库中有关差异备份的恢复问题 相关内容
Sogou搜索中 数据库中有关差异备份的恢复问题 相关内容

相关软件 最新回复帖子:

·nesox让电子邮件营销原来如此轻松!
·Windows Vista 中卸载软件的不同方式
·没有mysql支持时的替代方案
·一个可以发送附件及HTML格式邮件的PHP类
·AutoCAD打造精致三维鸟笼实例详解
·Photoshop自定义水晶字特效样式
·AutoCAD三维基础实例教程
·PS为黑背景长发美女照片抠图换背
·用Photoshop自制个性摩托车贴花小经验
·轻松几步将美女照片处理为手工素描


  相关软件 数据库中有关差异备份的恢复问题相关文章
MySQL的本地备份和双机相互备份脚本 Mysql日常备份和增量备份脚本(Linux)
简单应用:一个Mysql自动备份脚本 MySQL数据库的多表操作和备份处理
MySQL下数据备份的系统解决方案简介 一个简便的MySql数据库备份的方法
MySQL数据库如何实现双机热备的配置 数据库安全基础入门知识简介
向你介绍MySQL数据库备份的简单知识 MySQL数据库安全配置实用技巧(二)
Mysql安全问题(匿名用户)的一点心得 数据库安全性策略 (2)
数据库安全性策略 (1) 从IIS转到SQL数据库安全
数据库服务器的安全 浅谈对数据库的攻击(2)
浅谈对数据库的攻击(1) 数据库加密技术综述
SQL SERVER数据库口令的脆弱性 怎样使MySQL安全以对抗解密高手