Oracle數(shù)據(jù)庫備份與恢復(fù)是每個(gè)Oracle數(shù)據(jù)庫管理人員都不許掌握的知識(shí)。Oracle數(shù)據(jù)庫備份有三種方式,每種方式具有不同的恢復(fù)特性,因此應(yīng)集成數(shù)據(jù)庫與文件系統(tǒng)備份,集成邏輯備份和物理備份。
一、Oracle數(shù)據(jù)庫備份策略
1.在操作系統(tǒng)級(jí),使用大容量磁盤陣列,通過磁盤映像技術(shù)使每一個(gè)數(shù)據(jù)庫文件自動(dòng)分布于每個(gè)物理磁盤。這樣,當(dāng)某個(gè)磁盤出現(xiàn)物理損壞時(shí),操作系統(tǒng)會(huì)自動(dòng)引發(fā)映像磁盤來取代失效的磁盤,保證數(shù)據(jù)庫的正常運(yùn)行。
由于我們使用的是雙服務(wù)器,因此在另一服務(wù)器上保留一個(gè)備份數(shù)據(jù)庫。備份數(shù)據(jù)庫與正在使用的數(shù)據(jù)庫具有相同的參數(shù)狀態(tài),這樣在數(shù)據(jù)庫故障中,只需作必須的最少恢復(fù),最大限度地縮短了恢復(fù)時(shí)間。
在多個(gè)不同的物理磁盤上保持多個(gè)控制文件的備份?刂莆募跀(shù)據(jù)庫恢復(fù)期間用于引導(dǎo)Oracle,因此保持多個(gè)控制文件的備份,可以確保在出現(xiàn)磁盤故障后,能有可用的控制文件用于數(shù)據(jù)庫恢復(fù)。
使數(shù)據(jù)庫運(yùn)行在ARCHIVELOG(歸檔)方式下,歸檔日志存放于另一映像的邏輯磁盤上。
每晚進(jìn)行一次聯(lián)機(jī)備份操作,備份所有數(shù)據(jù)文件、所有歸檔日志文件、一個(gè)控制文件。
每周進(jìn)行一次輸出(Export)操作。
二、Oracle數(shù)據(jù)庫恢復(fù)策略
1.實(shí)例失敗
從實(shí)例失敗中進(jìn)行Oracle數(shù)據(jù)庫恢復(fù)是自動(dòng)進(jìn)行的。實(shí)例失敗一般是由服務(wù)器失敗引起的,當(dāng)數(shù)據(jù)庫實(shí)例失敗后,重新啟動(dòng)服務(wù)器,啟動(dòng)數(shù)據(jù)庫,Oracle檢查數(shù)據(jù)文件和聯(lián)機(jī)日志文件,并把所有文件同步到同一個(gè)時(shí)間點(diǎn)上。
2.磁盤失敗
如果丟失的是控制文件,只要關(guān)閉數(shù)據(jù)庫,從保留有控制文件的地方拷貝一份即可。
如果丟失的是數(shù)據(jù)文件,可用前一天晚上的聯(lián)機(jī)備份進(jìn)行恢復(fù),步驟如下:
(1)從備份中把丟失的文件存在原來位置。
(2)加載數(shù)據(jù)庫
(3)恢復(fù)數(shù)據(jù)庫
(4)打開數(shù)據(jù)庫
3.錯(cuò)誤刪除或修改對(duì)象
在這種情況下,一般希望能追溯返回到錯(cuò)誤發(fā)生前的那個(gè)時(shí)間點(diǎn)上。這叫做時(shí)間點(diǎn)恢復(fù)。完成恢復(fù)的步驟如下:
(1)從當(dāng)前數(shù)據(jù)庫輸出(Export),輸入(Import)到備用數(shù)據(jù)庫,使備用數(shù)據(jù)庫與當(dāng)前數(shù)據(jù)庫保持一致。
(2)向前滾動(dòng)備用數(shù)據(jù)庫到錯(cuò)誤發(fā)生前的那個(gè)時(shí)間點(diǎn)。
(3)從備用數(shù)據(jù)庫輸出受錯(cuò)誤影響的邏輯對(duì)象。
(4)使用上一步產(chǎn)生的輸出文件輸入那些受影響的對(duì)象到當(dāng)前數(shù)據(jù)庫。
三、Oracle用戶角色管理
1.對(duì)所有客戶端按工作性質(zhì)分類,分別授予不同的用戶角色。
2.對(duì)不同的用戶角色,根據(jù)其使用的數(shù)據(jù)源,分別授予不同的數(shù)據(jù)庫對(duì)象存取權(quán)限。
基于以上的安全策略,可以防止非法用戶訪問數(shù)據(jù)庫,限制合法用戶操縱數(shù)據(jù)庫的權(quán)限;可以使數(shù)據(jù)庫在故障發(fā)生后,不會(huì)丟失任何數(shù)據(jù),并能使數(shù)據(jù)庫迅速恢復(fù)到故障發(fā)生前的那一時(shí)間點(diǎn)上,最大限度的保證數(shù)據(jù)的安全和整個(gè)系統(tǒng)的連續(xù)運(yùn)行。