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