資料庫恢復方案...1
文件控制...1
一、相關概念...3
1,恢復的兩個階段...3
2,oracle例項啟動的三個階段...3
3,rman資訊的儲存位置...3
二、 完全恢復...3
(一) 控制檔案...3
1) 丟失部分控制檔案:...3
2) 丟失全部控制檔案...3
(二) 重做日誌檔案...4
1) 非當前使用的重做日誌檔案:...4
2) 當前使用的重做日誌檔案(未歸檔):...4
(三) 資料檔案...4
1) 無歸檔模式下的完全恢復...4
2) 歸檔模式下的完全恢復...5
三、 不完全恢復...6
(一) 基於scn的不完全恢復...6
1) 準備工作...6
2) 使用rman進行恢復...7
(二) 基於時間點的不完全恢復...8
1) 準備工作...8
2) 使用rman進行恢復...8
四、 高階篇...9
(一) 使用rman進行異機同目錄...9
1) 準備工作...9
2) 通過rman進行異機恢復...10
(二)使用rman進行異機異目錄...11
1) 準備工作...11
2) 通過rman進行異機恢復...11
(三)使用rman進行**資料塊恢復...14
一、相關概念
1,恢復的兩個階段
資料庫無論採取哪種方式進行恢復都分為restore和recover兩個步驟。
restore(還原):把控制檔案、重做日誌檔案和資料檔案還原到正確位置。
recover(恢復):恢復還原後的資料檔案,使資料庫達到一致狀態。
2,oracle例項啟動的三個階段
oracle例項啟動經過三個階段:
l nomount(未裝載):讀入引數檔案,驗證引數檔案中的目錄是否存在。
l mount(裝載):讀入引數檔案指定位置的控制檔案。
l open(開啟):驗證控制檔案中指定的重做日誌檔案和資料檔案是否正確、資料檔案是否一致,然後讀入資料檔案中的資料。
所以按照如下順序使資料庫正確開啟。
1) shutdown(關閉)狀態下,確保引數檔案指定的資料夾存在,啟動到nommunt狀態。
2) nomount狀態下,保證控制檔案的位置和命名與引數檔案中相同,控制檔案中指定的重做日誌檔案和資料檔案存在,然後啟動到mount狀態。
3) mount狀態下,執行rman還原和恢復操作。
4) open狀態下,讀入資料檔案和重做日誌檔案。
我們要保證oracle在各個階段讀入的檔案和目錄指向正確的路徑。
如果更改了某個檔案的位置,要把其相應的引數檔案和控制檔案中的資訊要一同更新。
3,rman資訊的儲存位置
nocatalog(非恢復目錄)模式時,rman把備份檔案的輔助資訊儲存在控制檔案中。
catalog(恢復目錄)模式時,rman把備份檔案的輔助資訊儲存在乙個資料庫中。
下面將通過若干實驗來總結oracle的各種崩潰情況下的恢復。
二、 完全恢復
(一控制檔案
丟失控制檔案只需要執行「還原」步驟。
1) 丟失部分控制檔案:
1, 關閉資料庫
2, 手動複製剩餘控制檔案並改名成丟失的控制檔名
3, 啟動資料庫
資料庫中所有控制檔案是完全相同的,使用dbca建立資料庫會預設產生三個控制檔案,建議多路復用控制檔案(把多個控制檔案放到不同磁碟上),保證資料庫的可用性。
2) 丟失全部控制檔案
1, 關閉資料庫
2, 啟動資料庫到nomount狀態
3, 重建控制檔案
4, 啟動資料庫
重建控制檔案有以下兩種方法:
1,找到警告日誌,根據其資訊建立控制檔案。警告日誌位於bdump資料夾中,命名為alert_.log,啟動失敗等資訊也可以在這裡找到。
2,找到跟蹤檔案,根據其sql語句重建控制檔案。跟蹤檔案位於udump資料夾下,使用下述命令備份控制檔案到跟蹤檔案。
sql> alter database backup controlfile to trace;
(二重做日誌檔案
丟失非當前狀態的重做日誌檔案需要執行「還原」步驟,丟失當前狀態的重做日誌檔案需要「恢復」步驟。
重做日誌檔案按狀態分為當前、非當前、已歸檔和未歸檔四種,需要用不同的命令來開啟資料庫。
1) 非當前使用的重做日誌檔案:
1,已歸檔:
sql> alter database clear logfile group #;
2,未歸檔:
sql> alter database clear unarchived logfile group #;
2) 當前使用的重做日誌檔案(未歸檔):
sql> alter database mount;
sql> recover database until cancel;
sql> alter database open resetlogs;
如果清除了未歸檔的重做日誌檔案(當前使用的重做日誌檔案為未歸檔),會丟失這個重做日誌檔案包含的資訊,導致日後恢復時無法完全恢復,所以清除未歸檔的重做日誌檔案後要立刻全備份資料庫。
(三資料檔案
1) 無歸檔模式下的完全恢復
無歸檔模式一般採用exp匯出或者手工冷備份方式進行備份恢復。
手工冷備份方式:
1,建立表
sql> create table tb(a integer,b integer);
表已建立。
2,插入資料
sql> insert into tb(a,b) values(1,1);
已建立1行。
sql> insert into tb(a,b) values (2,2);
已建立1行。
sql> commit;
提交完成。
3,關閉資料庫,手工刪除資料檔案模擬資料檔案損壞
sql> shutdown immediate;
4,開啟資料庫
sql> startup open;
oracle例程已經啟動。
total system global area 167772160 bytes
fixed size1247900 bytes
variable size62915940 bytes
database buffers 100663296 bytes
redo buffers2945024 bytes
資料庫裝載完畢。
ora-01157:無法標識/鎖定資料檔案4 -請參閱dbwr跟蹤檔案
ora-01110:資料檔案4: 'd:\oracle\product\10.2.0\oradata\orcl\users01.dbf'
5,手工還原資料檔案,開啟資料庫
sql> alter database open;
6,查詢資料
sql> select * from tb;
a b
1 1
2 2
資料庫恢復完成,資料沒有丟失。
2) 歸檔模式下的完全恢復
歸檔模式下可採用rman備份,手工備份與exp匯出方式進行備份,推薦使用rman方式進行安全可靠的備份。
rman方式:
丟失資料檔案需要先「還原」,再「恢復」資料檔案到一致狀態。
1,檢視test表中資料
sql> select * from tb;
a b
1 1
2 2
2,備份資料庫
rman target/
rman> backup database;
3,插入資料,切換日誌檔案
sql> insert into tb(a,b) values(3,3);
已建立1行。
sql> insert into tb(a,b) values(4,4);
已建立1行。
sql> commit;
提交完成。
sql> alter system switch logfile;
4,關閉資料庫,手動刪除users01.dbf
sql> shutdown immediate;
5,啟動資料庫到mount狀態
sql> startup mount:
6, 還原該資料檔案
rman> restore datafile 4;
7, 恢復該資料檔案
rman> recover database;
8, 開啟資料庫
rman> alter database open;
資料庫已更改。
9, 檢視資料是否丟失
sql> select * from tb;
a b
1 1
2 2
3 3
4 4
資料庫恢復完成,資料沒有丟失。
三、 不完全恢復
(一基於scn的不完全恢復
1) 準備工作
1,備份資料庫
rman target/
rman> backup database;
2,建立表
sql> create table tb(a integer);
表已建立。
3,插入資料
sql> insert into tb(a) values(1);
已建立1行。
sql> insert into tb(a) values(2);
已建立1行。
sql> commit;
提交完成。
4,檢視資料
sql> select * from tb;a1
ORACLE資料庫恢復技術
一 恢復的意義 當我們使用乙個racle 1 資料庫時,總希望資料庫的內容是可靠的 正確的,但由於計算機系統的故障 硬體故障 網路故障 程序故障和系統故障 影響資料庫系統的操作,影響資料庫中資料的正確性,甚至破壞資料庫,使資料庫中全部或部分資料丟失。因此當發生上述故障後,希望能重新建立乙個完整的資料...
Oracle資料庫恢復技術概述
作者 李永亮鄭晨溪 數字技術與應用 2014年第12期 摘要 本文通過對oracle資料庫物理結構和重做日誌的分析,指出了重做日誌是資料恢復的關鍵,進而介紹了資料恢復的原理,更能凸顯重做日誌在資料恢復中的核心地位。隨著資料庫技術的高速發展,oracle資料庫現已廣泛運用於各企事業單位的資訊化建設,並...
Oracle備份恢復方案
第一章基礎知識 一 備份內容 備份資料庫一般包括備份資料庫檔案 控制檔案 歸檔重做日誌檔案和檔案,如果有可能,備份還應包括可執行 和配置檔案。二 備份方法分類 主要的備份方法有物理備份 邏輯備份和恢復管理器 rman 備份。1 物理備份是實際物理資料庫檔案從一處拷貝到另一處的備份,它使用作業系統提供...