成人在线你懂的-成人在线免费小视频-成人在线免费网站-成人在线免费视频观看-日韩精品国产一区二区-日韩精品国产一区

掃一掃
關注微信公眾號

差異備份的恢復問題
2007-11-09   IT168

A : 情況是這樣的

create database test

create table t(a int)

insert into test..t select 1

然后進行一次完整備份

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

insert into test..t select 2

再進行一次完整備份

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

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

--創建數據庫

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: est.bak'

go

--插入數據2

insert into test..t select 2

go

--再進行一次完整備份

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

go

--插入3,4

insert into test..t select 3

insert into test..t select 4

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)

insert test..t select 1

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

insert test..t select 2

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

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

1

熱詞搜索:

上一篇:MySQL的本地備份和雙機相互備份腳本
下一篇:數據備份和容災需求分析

分享到: 收藏
主站蜘蛛池模板: 韩诗雅| 年十二的图片| 俺去也电影网| 霹雳俏娇娃| 马修·麦克费登| cctv神断狄仁杰第四部免费观看| 大奉打更人电视剧在线观看全集免费播放| 简单的应急预案怎么写| 电影《皮囊》| 光遇安卓官服下载| 拂乡心| 视频污污| 温暖的抱抱 电影| 我和我的祖国钢琴谱完整版| 黑帮大佬365日| 田园个人简历| 正在恋爱中 电视剧韩剧免费全集结局| 人世间演员表| 消防知识问答100题| 新年大吉祁隆| 战犬出击电影完整版免费观看| 尹雪喜最好看的三部电影| 绿巨人3| 大园桃子| 三年片电影| 改朝换代| 小姐与流氓| 自拍性视频| 来不及说我爱你免费全集在线观看| 菲律宾电影毕业生代表| 巢谷传| 电影继父| 火舞俪人 电影| 中国汉字大全20000个| 林智妍三部曲电影免费观看| 血芙蓉电影| 失落的星球| 邓为个人资料简介图片| 天河电影演员表| 月光奏鸣曲第三乐章钢琴谱| 林正英电影全部电影作品大全|