Oracle的Rman差異增量備份


所謂增量備份,顧名思義即是每次備份操作那些發生了“變化”的數據塊。在RMAN增量備份中有兩種:Differential(差異備份)和Cumulative(增量備份)方式。由於需求這里用到的備份方式則是差異增量備份。

差異增量備份概念:

是備份低級別或者同級別備份以來的所有數據塊,也就是要備份前期備份以來的差異數據塊。在實際的備份中必須存在基礎備份也就是0級備份,若沒有0級備份則沒有比較的對象文件,從而無法實現增量備份,而0級備份便是數據庫的全備份。(在Oracle10g之前的版本中,增量備份可以有n多個級別,從0級、1級…….這樣的順序直到n級,n為小於等於4的整數。而10g之后包括10g,Oracle的官方文檔明確指出增量備份只有0和1兩種級別,設置太多的級別沒有太大的意義,不過在實際執行增量操作時,仍能能夠指定多個級別,最大能夠支持4級的增量備份)

備份原則:

(1)     若前面同時有n-1級別和同級別,則備份相同級別以來變化的數據;

(2)     若前面沒有同級別的備份,則備份n-x級別以來變化的數據;

 總的一點,差異增量觸發的條件是:小於等於當前級別;
下面是周備份差異增量備份策略:

Rman備份基本命令:

登錄Rman:

win+r 輸入rman target/,或者先輸入cmd,窗口打開后再輸入rman  target/(建議用后者)

 

登錄進入的方式:

Rman targetsystem/newoa

Rman targetsystem/newoa nocatalog(控制文件方式)

Rman targetsystem/newoa catalog(恢復目錄方式)

數據庫備份:

Backup databaseformat=’ D:/backup/%d_%T_%s’;(format備份到自己想要備份到的地方)

備份表空間:

Backup tablespaceemp;

備份數據文件:

Backup datafileformat’ D:/backup/%d_%T_%s’;

備份歸檔日志:

Backup archivelogall delete input format ‘D:/backup/%d_%T_%s.dbf’;

備份控制文件:

Backup currentcontrolfile format ‘D:/backup/%d_%T_%s’;(current當前的)

備份spfile(參數文件):

Backup spfileformat=’ D:/backup/%d_%T_%s’;

0級增量備份:(level 后是幾就代表幾級)

backup incrementallevel 0 database format 'D:/backup/%d_%T_%s';

1級增量備份:

backup incrementallevel 1 database format 'D:/backup/%d_%T_%s';

   

---rman 維護命令:(登錄rman后進行的操作)

listbackup                                   --列出全部的備份信息
list backup ofdatabase                       --列出數據庫備份
list backup of tablespace emp                 --列出指定的表空間備份
list backup of datafile5                     --列出指定的數據文件備份 
list backup ofcontrolfile                    --列出控制文件備份
list backup ofspfile                         --列出spfile備份 
list archivelogall                           --列出歸檔日志
list backup of archivelogall                 --列出歸檔日志的備份

list backup of databasesummary               --列出可用的備份
list backup of tablespace empsummary          --關於表空間的備份
list backup byfile                           --按文件類型列出備份
list expired backup of archivelog all summary  --失效的備份

reportobsolete                               --查看過期的
deleteobsolete                               --刪除過期的

list recoverable backup ofdatabase            --列出有效的備份
list expiredbackup                           --列出失效的備份

list expired backup of archivelogall          --列出失效的歸檔日志備份

在開始操作前一定要將數據庫設為歸檔模式,否則無法實現備份操作

 

首先切換到服務器歸檔模式,如果已經是歸檔模式可以跳過此步驟:

(1)     Win鍵+r打開cmd , sqlplus /nolog (啟動sqlplus)

(2)     SQL>conn  system/newoa  as sysdba;(以DBA身份連接數據庫)

(3)     SQL>archivelog list;(查看是否處於歸檔模式)

(4)     shutdownimmediate;(立即關閉數據庫)

(5)     startupmount;(啟動實例並加載數據庫,但不打開)

(6)     alterdatabase archivelog;(更改數據庫為歸檔模式)

(7)     重復步驟(3)若出現下圖,表示數據庫已切換歸檔模式

(8)     alterdatabase open;(打開數據庫)

開始備份,新建四個文件分別是:rman0.bat,rman0.txt,rman1.bat,rman1.txt(文件的名字隨便命名只要區分備份級別即可)

Rman0.bat腳本內容:

 

rman target system/newoa nocatalogCMDFILE 'd:/Rman0.txt' LOG  'd:/backup/rmanbackup_%DATE:~0,4%_%DATE:~5,2%_%DATE:~8,2%.log';----à(此地址為日志地址)

Rman0.txt內容:

 

run{ 

backup incremental level 0database format 'D:/backup/%d_%T_%s';

backup archivelog all format'D:/backup/archivelog_%d_%T_%s_%p' delete all input;

}

Rman1.bat腳本內容:

 

rman target system/newoa nocatalogCMDFILE 'd:/Rman1.txt' LOG  'd:/backup/rmanbackup_%DATE:~0,4%_%DATE:~5,2%_%DATE:~8,2%.log';

rman1.txt內容:

 

run{ 

backup incremental level 1database format 'D:/backup/%d_%T_%s_%p';

backup archivelog all format'D:/backup/archivelog_%d_%T_%s_%p' delete all input;

}

 

在這里不需要再特意的寫備份控制文件,在備份數據庫時里面已經包含了控制文件的備份

在開始備份前,需在D盤中新建一個名為backup的文件夾,由上面備份文件存放的路徑可以看出;

執行rman0.bat:

出現這個窗口表示成功執行,若執行后沒過幾秒關閉則失敗,具體失敗原因在D盤backup文件夾的日志文件中可以查看;

備份成功后到磁盤中可以看到已經備份好的文件;

這樣數據庫0級備份便完成,接着進入到數據庫,添加一些數據再進行1級數據庫的備份(執行rman1.bat文件);

 

這時可以登錄rman查看已備份好的數據庫具體信息:

打開cmd 執行 rman target/

接着執行 list backup; 會看到以下信息

恢復數據庫

  恢復數據庫的方式:基於scn恢復

選擇scn恢復時,scn值為你選擇中的備份片的控制文件scn值,使用 list backup命令去查看;

開始恢復:

(1)     登錄到rman, --------rman target/

(2)     shutdownimmediate;(立即關閉數據庫)

(3)      startup mount;(啟動實例並加載數據庫,但不打開)

(4)      run{

set untilscn 1041640;

restoredatabase;

recoverdatabase;

alterdatabase open resetlogs;

}

 

結束之后便可進入數據庫查看數據是否恢復。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM