--======================
-- Oracle 備份恢複概念
--======================
資料庫維護中,備份或恢複是重中之重的問題。儘管很多時候資料庫系統運行緩慢,但對資料庫資料的丟失而言,顯然後者損失的代價是
不言而喻的。因此DBA至少在保證資料不丟失的情況下來提高系統的效能是最起碼的要求。關於什麼是備份與恢複,在此不做贅言。
一、物理備份與邏輯備份
物理備份
是所有物理檔案的一個副本,比如資料檔案,控制檔案,歸檔日誌等。該副本能被儲存在本地磁碟或磁帶等等。
物理備份是備份或恢複的基礎
包括冷備份(非歸檔模式)或熱備份(歸檔模式)
邏輯備份
將表、預存程序等資料使用Oracle的export等工具匯出到二進位檔案,後續根據需要再使用import工具匯入資料庫。
邏輯備份則是對物理備份的方式的一種補充,多用於資料移轉。
二、備份恢複工具
1.使用RMAN來備份恢複,支援命令列及GUI介面,支援第三方磁帶庫備份,功能比較強大。
支援備份資料庫、資料表空間、資料檔案、控制檔案、歸檔日誌等
可以儲存頻繁使用備份恢複指令碼
支援增量備份,跳過未使用的塊,以及控製備份速度
在備份期間偵測損壞的資料
通過自動並發、限制I/O等提高備份效能
2.使用者託管的備份與恢複,是一種手動備份恢複的方式。使用作業系統命令和SQL*plus來完成相關的備份與恢複。
三、備份與恢複的策略
1.多工控制檔案及多個並發備份
2.多工聯機重做記錄檔
3.在ARCHIVELOG 模式下運行資料庫,並將重做日誌存檔至多個位置
4.時常備份物理資料檔案,儘可能建立多個副本到可靠的位置
四、備份與恢複的幾類重要資料結構
1.資料檔案
2.聯機重做記錄檔
3.控制檔案
4.自動管理的撤銷
5.可選的備份檔案(參數檔案、密碼檔案)
五、常見的備份類型
線上資料庫備份 -->使用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視頻教程請關注:http://u.youku.com/user_video/id_UMzAzMjkxMjE2.html