--======================
-- Oracle 備份恢復概念
--======================
?
??? 數據庫維護中,備份或恢復是重中之重的問題。盡管很多時候數據庫系統運行緩慢,但對數據庫數據的丟失而言,顯然后者損失的代價是
不言而喻的。因此 DBA 至少在保證數據不丟失的情況下來提高系統的性能是最起碼的要求。關于什么是備份與回復,在此不做贅言。
?
一、物理備份與邏輯備份
??? 物理備份
??????? 是所有物理文件的一個副本,比如數據文件,控制文件,歸檔日志等。該副本能被存儲在本地磁盤或磁帶等等。
??????? 物理備份是備份或恢復的基礎
??????? 包括冷備份 ( 非歸檔模式 ) 或熱備份 ( 歸檔模式 )
??? 邏輯備份
??????? 將表、存儲過程等數據使用 Oracle 的 export 等工具導出到二進制文件,后續根據需要再使用 import 工具導入數據庫。
??????? 邏輯備份則是對物理備份的方式的一種補充,多用于數據遷移。
?
二、備份恢復工具
??? 1. 使用 RMAN 來備份恢復,支持命令行及 GUI 接口,支持第三方磁帶庫備份,功能比較強大。
??????? 支持備份數據庫、表空間、數據文件、控制文件、歸檔日志等
??????? 可以保存頻繁使用備份恢復腳本
??????? 支持增量備份,跳過未使用的塊,以及控制備份速度
??????? 在備份期間偵測損壞的數據
??????? 通過自動并發、限制 I / O 等提高備份性能
??? 2. 用戶托管的備份與恢復,是一種手動備份恢復的方式。使用操作系統命令和 SQL * plus 來完成相關的備份與恢復。
???
三、備份與恢復的策略
??? 1. 多路復用控制文件及多個并發備份
??? 2. 多路復用聯機重做日志文件
??? 3. 在 ARCHIVELOG 模式下運行數據庫,并將重做日志存檔至多個位置
??? 4. 時常備份物理數據文件,盡可能創建多個副本到可靠的位置
??? 關于數據庫的日常規劃請參考: Oracle 常見故障及日常規劃 ??
?
四、備份與恢復的幾類重要數據結構
??? 1. 數據文件
??? 2. 聯機重做日志文件
??? 3. 控制文件
??? 4. 自動管理的撤銷
??? 5. 可選的備份文件 ( 參數文件、密碼文件 )
??? 上述有關概念請參考: Oracle 實例和Oracle 數據庫(Oracle 體系結構)
?
五、常見的備份類型
??? 聯機數據庫備份 ????? --> 使用 archivelog 模式 ,SCN 不一致
??? 脫機數據庫備份 ????? --> 使用 noarchivelog 模式 ,SCN 保持一致
??? 整個數據庫 ????????? --> 可以在不同的時間段來備份,減輕 I/O 壓力,從而構建整個數據庫
??? 表空間 ????????? ?? --> 在 archivelog 模式下,當處于 noarchivelog 模式下,則該表空間必須為只讀或脫機
??? 數據文件 ??????? ???? --> 同表空間備份
??? 控制文件 ??????????? --> 可以使用 SQL 語句或 RMAN 來備份
??? 歸檔日志 ???????????
??? 參數文件
???
六、備份的分類
??? 前面提到了邏輯備份與物理備份的概念,下面描述根據備份的內容、大小、性質等進行再分類
??? 1. 全部備份與部分備份
??????? 全部備份:包含所有的數據文件及至少一個控制文件,參數文件,密碼文件等。
??????? 部分備份:包含零個或多個表空間,零個或多個數據文件,可能包含控制文件等。部分備份僅在歸檔模式下才有效。
?
??? 2. 完整備份與增量備份
??????? 完整備份:一個或多個數據文件的一個完整副本,包含從備份開始處所有的數據塊。
??????? 增量備份:包含從最近一次次備份以來被修改或添加的數據塊。
??????????? 又可分為
??????????????? 差異增量:是備份上級及同級備份以來所有變化的數據塊,差異增量是默認增量備份方式
??????????????? 累計增量:是備份上級備份以來所有變化的塊
??????????? 增量備份的幾種形式
??????????????? 0 級增量備份:是所有備份的基礎,是一個完整備份,包含所有的數據塊
??????????????? 1 級差異增量備份:包含最近一次 1 級累計備份或差異備份以來被更改的數據塊
??????????????? 1 級累計增量備份:只包含最近一次 0 級備份以來被更改的數據塊
???????????
??????????? 增量備份支持 archivelog 和 noarchivelog 模式,也可以在打開或關閉時進行。但只有 RMAN 才能實現增量備
???????????
??? 3. 脫機備份與聯機備份
??????? 脫機備份:在數據庫關閉階段發生的備份,又稱為一致性備份或冷備份。在一致性關閉數據庫后,控制文件 SCN 與數據文件頭部 SCN 一致
??????? 聯機備份:在數據庫使用階段發生的備份,又稱為非一致性備份或熱備份。聯機備份一個數據文件不與任何特定的 SCN 以及控制文件同步
??????????? ????? 可以是全部備份,也可以是部分備份,能夠使用 RMAN 或操作系統命令完成
??????????????? ? 僅僅在 archivelog 模式下
??????????????? ?
??? 4. 映像副本與備份集
??????? 映像副本:是某個文件的完整拷貝,未經過任何壓縮處理,每個字節都與源文件相同。不支持增量備份也不能備份到磁帶。
??????? 備份集:由一個或多個稱為 piece 的物理文件組成的邏輯結構。備份片中可以是數據文件,控制文件以及歸檔日志文件。
??????????????? 支持數據的壓縮,支持增量備份。
??????????????? 可以備份到磁盤,也可以備份到磁帶。
???????
七、還原與恢復 ?????
??? 數據庫恢復的策略,是使用最近的一次備份來實現數據庫的還原,然后使用歸檔日志和聯機日志將數據庫恢復到最新或特定狀態。
??????? 還原:從最近的備份文件中檢索所需要的內容,并將其拷回到原來位置的過程稱為還原。
??????????? ? 可以基于數據庫、表空間、數據文件、控制文件、參數文件進行還原
???????????
??????? 恢復:在還原的基礎上,使用歸檔日志和聯機日志將數據庫刷新到最新的 SCN ,使數據庫保持一致性。
???
??? 恢復的類型
??????? 實例恢復
??????????? 在 RAC 中,當一個實例崩潰,則幸存的示例將自動使用聯機日志來前滾已提交的事務,撤銷未提交的事務并釋放鎖。
??????? 崩潰恢復
??????????? 指在單實例的環境中,或多實例環境中所有的實例崩潰發生。在崩潰恢復中,實例必須首先打開數據庫,然后執行恢復操作。
??????????? 一般而言,在崩潰或關機退出之后第一個打開數據庫的實例將自動執行崩潰恢復。
??????? 介質恢復
??????????? 介質恢復通常為響應介質故障并根據用戶的命令來執行恢復。
??????????? 可以使用聯機或歸檔日志來使還原的備份為最新或將其更新至一個特定的時間點。
??????????? 介質恢復可以將整個數據庫、一個表空間一個數據文件還原至指定的時間點
??????????? 可分為完全恢復或不完全恢復
??????????????? 完全恢復:使用歸檔、聯機日志與數據庫、表空間或數據文件等的備份結合使用以將其更新至最新的時間點。
??????????????????? 步驟
??????????????????????? a . 將受損的數據文件脫機
??????????????????????? b . 還原受損的數據文件
??????????????????????? c . 恢復受損的數據文件
??????????????????????? d . 將已恢復的數據文件聯機
??????????????? 不完全恢復:使用歸檔、聯機日志與數據庫、表空間或數據文件等的備份結合使用以將其更新至過去的某個時間點或 SCN 等
??????????????????? 步驟
??????????????????????? a . 加載數據庫
??????????????????????? b . 還原所有數據文件,同時可以選擇還原控制文件
??????????????????????? c . 將數據庫恢復至某個時間點、序列、或系統改變號
??????????????????????? d . 使用 RESETLOGS 關鍵字打開數據庫
??????????????????????? 不完全恢復
??????????????????? 不完全恢復選項
??????????????????????? 基于時間的恢復,也稱為時點恢復,將數據庫恢復到一個指定的時間點
??????????????????????? 基于表空間時間點恢復,使用戶能夠將一個或多個表空間恢復至與數據庫其余的部分不同的某個時間點。
??????????????????????? 基于取消的恢復,它恢復到執行 CANCEL 命令為止。
??????????????????????? 基于更改的恢復或日志序列恢復 , 如果使用了 O / S 命令 , 則基于更改的恢復將一直恢復到重做記錄中一個指定的 SCN 為止
??????????????????????? 從人為錯誤中閃回
?
??????? 使用閃回特性從人為的錯誤中恢復
???????????????
??? 恢復工具
??????? 使用 RMAN 來進行恢復
??????????? RMAN 可以從備份機或映像副本中將數據文件還原至當前位置或新位置。當需要使用歸檔日志時, RMAN 將自動還原并應用歸檔日志
??????????? RMAN 支持完全介質恢復、不完全介質恢復
??????????? RMAN 恢復的基本命令式 restore 和 recover
???????????
??????? 使用 SQL * plus 來進行恢復
??????????? 確定要恢復哪些文件。通常可以查詢視圖 V$RECOVER_FILE 。
??????????? 從備份中還原介質故障損壞的文件 . 當用戶沒有備份時 , 可以使用必要的重做日志且控制文件包含損壞文件名稱時仍可以執行恢復。
??????????? 如果無法將文件還原至其原始位置,則用戶必須重新定位還原的文件并將該新位置更新到控制文件。
??????????? 還原必要的存檔重做日志文件。
?
八、更多參考 ???????????????
???????
?
?
?
?
?
? Oracle 聯機重做日志文件(ONLINE LOG FILE)
?
?
?
???????
???????????????
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
