oracle資料庫恢復方案

2021-11-01 17:00:01 字數 5145 閱讀 1394

資料庫恢復方案...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 物理備份是實際物理資料庫檔案從一處拷貝到另一處的備份,它使用作業系統提供...