點(diǎn)擊查看:2015計算機(jī)等級考試四級數(shù)據(jù)庫工程師復(fù)習(xí)匯總
第15章 備份和恢復(fù)數(shù)據(jù)庫
15.1 備份數(shù)據(jù)庫
15.1.1 概述
1、備份數(shù)據(jù)庫的作用
(1) 備份數(shù)據(jù)庫就是將數(shù)據(jù)庫數(shù)據(jù)和與數(shù)據(jù)庫的正常運(yùn)行有關(guān)的信息保存起來,以備恢復(fù)數(shù)據(jù)庫時使用,其主要目的是為了防止數(shù)據(jù)的丟失。
(2) 另一作用是作為數(shù)據(jù)轉(zhuǎn)移的一種方式;
2、備份時間
(1) 對于系統(tǒng)數(shù)據(jù)庫應(yīng)進(jìn)行了修改后立即備份,對于用戶數(shù)據(jù)庫一般采用定期備份;
(2) 備份數(shù)據(jù)庫要選在數(shù)據(jù)庫操作少的時間進(jìn)行,這樣可減少對備份以及數(shù)據(jù)操作性能的影響。
15.1.2 備份設(shè)備
1、 SQL Server將備份數(shù)據(jù)庫的場所稱為備份設(shè)備,它支持將數(shù)據(jù)庫備份到磁帶或磁盤上;
2、 備份方式有兩種:
(1) 先創(chuàng)建備份設(shè)備,然后將數(shù)據(jù)庫備份到備份設(shè)備上(永久備份設(shè)備);
(2) 直接將數(shù)據(jù)庫備份到物理文件上(臨時備份設(shè)備)。
15.1.3 創(chuàng)建備份設(shè)備
備份設(shè)備在操作系統(tǒng)一級實(shí)際上是物理文件,只是備份設(shè)備必須要先創(chuàng)建好,然后才能使用
1、 用企業(yè)管理器創(chuàng)建備份設(shè)備
2、 使用系統(tǒng)存儲過程創(chuàng)建備份設(shè)備
sp_addumpdevice[@devtype=]’device_type’,[@logicalname=]’logical_name’,
[@physicalname=]’physical_name’
其中:
(1)[@devtype=]’device_type’:為備份設(shè)備的類型,可選下列之一:
(A) Disk:使用磁盤文件作為備份設(shè)備;
(B) Pipe:使用命名管道作為備份設(shè)備;
(C) Tape:使用磁帶設(shè)備。
(2)[@logicalname=]’logical_name’:備份設(shè)備的邏輯名稱,該邏輯名稱用在BACKUP和RESTORE語句中;
(3)[@physicalname=]’physical_name’:備份設(shè)備的物理名稱。
15.1.4 備份類型
1、 完全備份
是將數(shù)據(jù)庫中的全部信息進(jìn)行備份,它是恢復(fù)的基線,在進(jìn)行完全備份時,不但備份數(shù)據(jù)庫的數(shù)據(jù)文件、日志文件,而且還備份文件的存儲位置信息以及數(shù)據(jù)庫中的全部對象及相關(guān)信息;
備份數(shù)據(jù)庫是要消耗時間的,在進(jìn)行備份數(shù)據(jù)庫時,用戶可以訪問數(shù)據(jù)庫,它將不影響數(shù)據(jù)庫的備份,并且還可以將備份過程中發(fā)生的活動全部備份下來。
2、差異備份
是備份從最近的完全備份之后對數(shù)據(jù)庫所作的修改,它以完全備份為基點(diǎn),備份變化了的數(shù)據(jù)文件和日志文件以及數(shù)據(jù)庫中其他被修改的內(nèi)容,
在差異備份過程中,也允許用戶訪問數(shù)據(jù)庫和對其操作,且在備份過程中的活動也一起備份下來;
3、事務(wù)日志備份
(1) 是備份從上次備份之后的日志記錄,在默認(rèn)情況下,事務(wù)日志備份完成后,要截斷日志。
(2) 事務(wù)日志記錄了用戶對數(shù)據(jù)庫進(jìn)行的修改操作,為了避免記錄越來越多,必須定期地將日志記錄中不需要的部分清除掉,這種過程叫截斷日志,備份日志是截斷日志的一種方法;
(3) 如果要進(jìn)行事務(wù)日志備份,必須將數(shù)據(jù)庫的故障還原模型設(shè)置為“完全”方式或“大容量日志記錄的”方式,因?yàn)樵谀J(rèn)情況下的“簡單”方式,只能進(jìn)行完全備份和差異備份,不能進(jìn)行事務(wù)日志備份,因?yàn)樵谠撃J较孪到y(tǒng)自動定期將事務(wù)日志中不活動的部分清除。
(4) 如要對數(shù)據(jù)庫進(jìn)行事務(wù)日志備份,則必須先設(shè)置數(shù)據(jù)庫的故障還原模型,否則在恢復(fù)時就會出錯。這是因?yàn)椴煌倪原模型對日志的記錄和維護(hù)方式是不一樣的。
15.1.5 備份策略
1、完全備份
完全備份策略適合于數(shù)據(jù)庫數(shù)據(jù)不是很大,而且數(shù)據(jù)更改不是很頻繁的情況?梢詭滋旎驇字苓M(jìn)行一次;
2、完全備份+日志備份
如不允許丟失太多數(shù)據(jù),且不希望經(jīng)常進(jìn)行完全備份;
3、完全備份+差異備份+日志備份
該策略的好處是備份和恢復(fù)的速度都比較快,出現(xiàn)故障時丟失的數(shù)據(jù)也比較少;
15.1.6 實(shí)現(xiàn)備份
1、 使用企業(yè)管理器備份數(shù)據(jù)庫
2、 使用Transact-SQL語句備份數(shù)據(jù)庫
(1) 備份數(shù)據(jù)庫的基本語法:
BACKUP DATABASE 數(shù)據(jù)庫名
TO {<備份設(shè)備名>}|{DISK|TAPE}={‘物理備份文件名’}
[WITH [DIFFERENTIAL][[,]{INIT|NOINIT}]]
其中:
(A)<備份設(shè)備名>:將數(shù)據(jù)庫備份到已創(chuàng)建好的備份設(shè)備名上;
(B)DISK|TAPE:將數(shù)據(jù)庫備份到磁盤或磁帶;
(D) DIFFERENTIAL:進(jìn)行差異備份;
(E) INIT:本次備份數(shù)據(jù)庫將重寫備份設(shè)備,即覆蓋掉本設(shè)備上以前進(jìn)行的所有備份;
(F) NOINIT:本次備份數(shù)據(jù)庫將追加到備份設(shè)備上,即不覆蓋。
(2) 備份數(shù)據(jù)庫日志的基本語法:
BACKUP LOG 數(shù)據(jù)庫名
TO {<備份設(shè)備名>}|{DISK|TAPE}={‘物理備份文件名’}
[WITH [{INIT|NOINIT}] [{[,]NO_LOG|TRUNCATE_ONLY|NO_TRUNCATE}]]
其中:
(A) NO_LOG和TRUNCATE_ONLY:表示備份完日志后要截斷不活動的日志;
(B) NO_TRUNCATE:表示備份完日志后不截斷不活動的日志;
(C) 其他選項同備份數(shù)據(jù)庫語句的選項。
15.1.7 備份媒體集
1、 當(dāng)數(shù)據(jù)庫很大時,有時一個備份設(shè)備的空間可能不能滿足要求,這里就可以將數(shù)據(jù)庫備份到多個不同的備份設(shè)備上,同時使用多個備份設(shè)備進(jìn)行備份的為此設(shè)備就稱為備份媒體集;
2、 使用媒體集與使用單一備份設(shè)備的方法一樣,只需添加其他備份設(shè)備,系統(tǒng)會自動將這些設(shè)備作為一個備份媒體集使用;
3、 系統(tǒng)在使用備份媒體集時,基本是將備份所需的空間均衡地分擔(dān)到每個備份設(shè)備上;
4、 如果以后要單獨(dú)使用某個設(shè)備,則必須重新初始化備份媒體集,即刪除不需要的設(shè)備后,重寫并初始化即可,但注意的是,重新初始化后原備份媒體集上所備份的內(nèi)容將全部丟失。
15.2 恢復(fù)數(shù)據(jù)庫
15.2.1 恢復(fù)前的準(zhǔn)備及恢復(fù)順序
1、恢復(fù)前的準(zhǔn)備
在恢復(fù)數(shù)據(jù)庫前必須限制數(shù)據(jù)庫的訪問,一般選擇“限制訪問”中的“db_owner、dbcreator或sysadmin的成員”,說明只有以上角色才可訪問數(shù)據(jù)庫;
2、恢復(fù)的順序
(1) 恢復(fù)最近的完全數(shù)據(jù)庫備份;
(2) 恢復(fù)完全數(shù)據(jù)庫備份之后最近的差異數(shù)據(jù)庫備份;
(3) 按日志備份的先后順序恢復(fù)自最近的完全或差異數(shù)據(jù)庫備份之后的所有日志。
15.2.2 實(shí)現(xiàn)恢復(fù)
1、用企業(yè)管理器恢復(fù)數(shù)據(jù)庫
2、用Transact-SQL語句恢復(fù)數(shù)據(jù)庫
RESTORE DATABASE 數(shù)據(jù)庫名
FROM 備份設(shè)備名
[WITH FILE=文件號[,]NORECOVERY[,]RECOVERY]
其中:
(1) FILE=文件號:標(biāo)識要還原的備份集,文件號為1表示備份設(shè)備上的第一個備份集,文件號為2表示備份設(shè)備上的第二個備份集;
(2) NORECOVERY:表明對數(shù)據(jù)庫的恢復(fù)還沒有完成,使用此項恢復(fù)的數(shù)據(jù)庫是不可用的,但可以繼續(xù)恢復(fù)后續(xù)的備份;
(3) RECOVERY:表明對數(shù)據(jù)庫的恢復(fù)已完成,一般是在恢復(fù)數(shù)據(jù)庫的最后一個備份時使用此項,此時恢復(fù)的數(shù)據(jù)庫是可用的。
恢復(fù)日志的語法:
RESTORE LOG 數(shù)據(jù)庫名 FROM 備份設(shè)備名 [WITH FILE=文件號[,]NORECOVERY[,]RECOVERY]
相關(guān)推薦:
北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內(nèi)蒙古 |