當前位置:
首頁 > 最新 > DBA之Oracle資料庫的備份恢復

DBA之Oracle資料庫的備份恢復

資料庫管理員的職責包括:盡量避免資料庫出現故障,延長平均故障間隔時間(MTBF),通過冗餘提供保護,縮短平均恢復時間(MTTR)和最大程度地減少數據丟失。

第一部分:資料庫備份恢復的概念

一、資料庫可能發生的故障類型

1、語句錯誤

2、用戶進程錯誤

3、網路故障

4、用戶錯誤

5、實例錯誤

6、介質故障


1、了解實例恢復:檢查點(CKPT)進程

CKPT 負責以下事項:

1)使用檢查點信息更新數據文件標題

2)使用檢查點信息更新控制文件

3)在完全檢查點向DBWn發出信號

2、了解實例恢復:重做日誌和日誌寫進程

1)重做日誌文件:

a)記錄對資料庫進行的更改

b)應多路復用以避免文件丟失

2)日誌寫進程的寫入時間為:

a)提交時

b)三分之一已滿時

c)每隔3 秒

d)在DBWn 寫入之前

e)一致性關閉之前

3、了解實例恢復:自動實例恢復或崩潰恢復

1)原因是嘗試打開的資料庫中的文件在關閉時不同步

2)使用重做日誌組中存儲的信息來同步文件

3)涉及到兩個不同的操作:

a)前滾:數據文件還原到出現實例錯誤之前所處的狀態。

b)回退:已執行但尚未提交的更改會返回到初始狀態。

4、實例恢復階段

1) 數據文件不同步

2) 前滾(重做)

3) 文件中的提交和未提交數據

4) 打開資料庫

5) 回退(還原)

6) 文件中的提交數據

5、優化實例恢復

1)在實例恢復期間,必須將檢查點位置與重做日誌末尾之間的事務處理應用到數據文件。

2)通過控制檢查點位置與重做日誌末尾之間的差異可優化實例恢復。

6、使用MTTR指導

1)以秒或分鐘為單位指定所需的時間。

2)默認值為0(禁用)

3)最大值為3,600 秒(1 個小時)

7、針對可恢復性進行配置

要使資料庫的配置可實現最大可恢復性,必須執行以下操作:

1)計劃常規備份

2)多路復用控制文件

3)多路復用重做日誌組

4)保留重做日誌的歸檔副本


1、快速恢復區

強烈建議使用,可簡化備份存儲管理 –磁碟上的空間(與工作資料庫文件分開) ;位置由DB_RECOVERY_FILE_DEST 參數指定;大小由DB_RECOVERY_FILE_DEST_SIZE 參數指定; 足夠大,可存放備份、歸檔日誌、閃回日誌、鏡像控制文件和鏡像重做日誌; 根據保留策略自動進行管理; 配置快速恢復區意味著確定了位置、大小和保留策略。

2、多路復用控制文件

為了避免資料庫出現故障,數據應具備多路復用控制文件。

3、重做日誌文件

多路復用重做日誌組可避免介質故障和數據丟失,這會增加資料庫I/O。建議重做日誌組滿足以下條件:

1)每個組至少有兩個成員(文件)

2)在每個磁碟驅動器上有一個成員

3)使用ASM的系統,每個磁碟組上有一個成員。

註:多路復用重做日誌可能會影響資料庫整體性能。

4、多路復用重做日誌

5、歸檔日誌文件

要保留重做信息,請通過執行以下步驟,創建重做日誌文件的歸檔副本。

1)指定歸檔日誌文件命名慣例

2)指定一個或多個歸檔日誌文件的位置

3)將資料庫切換到ARCHIVELOG 模式

6、歸檔程序(ARCn)進程

歸檔程序(ARCn):

1)是可選的後台進程

2)為資料庫設置ARCHIVELOG 模式時會自動歸檔聯機重做日誌文件

3)保留對資料庫所做的所有更改的記錄

7、歸檔日誌文件:命名與目標位置

1)要配置歸檔日誌文件名和目標位置,請選擇「Enterprise Manager > Availability > Configure Recovery Settings(Enterprise Manager > 可用性> 配置恢復設置)」。

2)如果使用文件系統,建議選擇多個路徑分別在不同的磁碟。


要將資料庫置於ARCHIVELOG 模式下,請在Enterprise Manager 中執行以下步驟:

1)選中「ARCHIVELOG Mode(ARCHIVELOG 模式)」複選框並單擊「Apply(應用)」。只有處於MOUNT 狀態時才能將資料庫設置為ARCHIVELOG 模式。

2)重新啟動資料庫(使用SYSDBA 許可權)

3) (可選)查看歸檔狀態

4) 備份資料庫

註:處於ARCHIVELOG 模式下的資料庫可訪問所有備份和恢複選項。


第二部分:執行資料庫備份

1、使用以下方法可執行備份

1)Recovery Manager

2)Oracle Secure Backup

3)用戶管理的備份

2、Oracle Secure Backup

1)Oracle Secure Backup 和RMAN 一起為Oracle 環境提供了端到端備份解決方案

?對文件系統數據和Oracle DB 使用集中式磁帶備份管理

?對RMAN 備份使用最佳集成介質管理層

?可備份網路上任意位置的任意數據

2)為整體備份解決方案提供單一技術支持資源,可加快決問題的速度。

3)確保以較低的成本和複雜性提供可靠的數據保護。

3、用戶管理的方案

1)指手動跟蹤備份需求和狀態的過程

2)通常使用用戶自己編寫的腳本

3)需要將資料庫文件置於正確的模式以進行備份

4)依賴操作系統命令來備份文件


1、術語

1)備份策略可包括:

?整個資料庫(整個)

?部分資料庫(部分)

2)備份類型可指示包含以下項:

?所選文件中的所有數據塊(完全備份)

?只限自以前某次備份以來更改過的信息(增量備份)

i、累積(自上次0 級備份以來的更改)

ii、差異(自上次增量備份以來的更改)

3)備份模式可為以下類型:

?離線(一致備份或冷備份)

?聯機(非一致備份或熱備份)

2、備份可存儲為:

1)映像副本

2)備份集

3、Recovery Manager(RMAN)

1)具有強大的控制能力和腳本編寫語言

2)已與Enterprise Manager 集成在一起

3)具有已公布的API,可以用來連接到多數常用備份軟體

4)可備份數據、控制文件、歸檔日誌文件和伺服器參數件

5)可將文件備份到磁碟或磁帶

4、配置備份設置

5、調度備份

1)策略

2)選項

3)設置

4)調度

5)複查

6、將控制文件備份到跟蹤文件

1)控制文件有一個附加備份選項

2)控制文件跟蹤備份可用來在丟失了所有控制文件之後進行恢復

7、管理備份

8、查看備份報告

9、監視快速恢復區

10、使用RMAN命令行


第三部分:執行資料庫恢復

1、打開資料庫

要打開資料庫,必須滿足以下條件:

?所有控制文件都必須存在且已同步

?所有聯機數據文件都必須存在且已同步

?每個重做日誌組必須至少有一個成員存在

2、使用資料庫保持在打開狀態

1)打開資料庫後,如果丟失以下項時資料庫就會失敗

2)任何控制文件 –屬於系統或還原表空間的數據文件

3)整個重做日誌組 (只要組中至少有一個成員可用,實例就會保持在打開狀態)


1、快速檢測、分析和修復故障

2、停機和運行時的故障

3、將對用戶的干擾降到最低

4、用戶界面

?Enterprise Manager

?GUI(多個路徑)

?RMAN 命令行

5、支持的資料庫配置

?單實例

?非RAC

6、支持故障轉移到備用資料庫,但不支持分析和修復備用資料庫


1、丟失了控制文件

1)如果控制文件丟失或損壞,則實例通常會中止

2)如果使用ASM存儲,則執行以下步驟:

?使用 Enterprise Manager 執行恢復指導

?將資料庫啟動到 NOMOUNT 狀態和使用 RMAN 命令從現有控制文件恢復控制文件

3)如果控制文件存儲在普通的文件系統中,則執行以下步驟:

?關閉實例

?通過複製現有控制文件還原缺失的控制文件

4)在控制文件成功恢復後,打開資料庫


丟失了重做日誌文件:如果丟失了重做日誌文件組中的某個成員,並且組中至少還有一個成員,請注意其後果是:

1、不會影響實例的正常操作

2、預警日誌中會收到一條消息,通知您無法找到某個成員。

3、通過刪除丟失的日誌成員,再添加新的成員的方式來恢復。

4、如果該日誌組已經歸檔,則可以清空該日誌組,然後重建丟失的日誌成員。


如果資料庫處於 NOARCHIVELOG 模式下,並且丟失了任何數據文件,請執行以下任務:

1、如果實例尚未關閉,請關閉實例。

2、從備份還原整個資料庫,包括所有數據文件和控制文件。

3、打開資料庫

4、讓用戶重新輸入自上次備份以來所做的所有更改。


如果丟失或損壞了某個數據文件,且該文件不屬於SYSTEM 或 UNDO表空間,則可還原並恢復缺失的數據文件。


如果丟失或損壞了某個數據文件,且該文件屬於SYSTEM 或 UNDO表空間,請執行以下任務:

1、實例可能會也可能不會自動關閉。如果未自動關閉,請使用SHUTDOWN ABORT 關閉實例。

2、裝載資料庫

3、還原並恢復缺失的數據文件

4、打開資料庫


1、數據故障:示例

1)組件無法訪問:缺失操作系統級別的數據文件、訪問許可權不正確、表空間離線

2)物理損壞:塊校驗和失敗、塊頭欄位值無效

3)邏輯損壞:目錄不一致;行片段、索引條目或事務處理損壞

4)不一致:控制文件早於或晚於數據文件和聯機重做日誌

5)I/O 故障:超出打開的文件數限制、通道無法訪問、網路或I/O 錯誤

2、評估數據故障

3、數據故障

4、列出數據故障

5、建議修復

6、執行修復

7、數據恢復指導視圖

對動態數據字典視圖進行查詢:

1)V$IR_FAILURE:列出所有故障,其中包括已關閉的故障(LIST FAILURE命令的結果)

2)V$IR_MANUAL_CHECKLIST:列出手動建議(ADVISEFAILURE 命令的結果)

3)V$IR_REPAIR:列出修復(ADVISE FAILURE 命令的結果)

4)V$IR_FAILURE_SET:交叉引用故障和建議標識符


喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 IT達摩猿 的精彩文章:

DBA之Oracle資料庫數據移植

TAG:IT達摩猿 |