RMAN詳細教程(二):備份、檢查、維護、恢復

RMAN詳細教程(一):基本命令代碼 RMAN詳細教程(二):備份、檢查、維護、恢復 RMAN詳細教程(三):備份腳本的組件和註釋 RMAN詳細教程(四):備份腳本實戰操做      html

1、建立增量備份

增量備份級別爲0-4,但爲方便備份管理,oracle建議只限於0級和1級。數據庫

一、差別增量備份(differential incremental backup)(默認):

每次備份至上一次備份級別小於等於當前級別的備份。   oracle

二、累計增量備份(cumulative incremental backup):

1)每次備份至上一次小於當前級別的備份; 2)增量備份須要先進行一次0級備份,做爲備份的起點。   性能

三、增量備份例子:

backup incremental level 0 database;----0級增量備份,做爲增量備份策略的基礎
backup incremental level 1 cumulative database;----1級累積增量備份
backup incremental level 1 database;----1級差別增量備份

     

2、建立增量更新備份

一、前提條件:

1)以0級數據文件鏡像做爲基礎; 2)1級差別增量備份的標籤須要和0級一致; 3)增量備份被應用到0級鏡像上。   spa

二、命令例子:

backup for recover of copy----只備份從上一個相同標籤的備份以來發生數據塊改變的增量備份
backup incremental level 0 for recover of copy tag 'test' database; ----使用tag標記數據文件鏡像做爲備份策略基礎
recover copy of database with tag 'test';----增量更新備份

     

3、數據庫文件和備份的檢查

一、有效性(數據文件是否存在於正確的路徑下,而且是否存在物理塊損壞):

1)檢查是否存在邏輯塊損壞: check logical 2)在備份時,對數據文件和歸檔日誌文件進行檢查: backup validate check logical database archivelog all; 3)支持對數據文件中的數據庫進行檢查: validate datafile 4 block 10 to 30; 4)支持對數據庫備份集進行驗證: validate backupset 3;   rest

二、引用腳本文件執行任務:

1)RMAN @/my_dir/test.txt 2)或登錄RMAN後@/my_dir/test.txt   日誌

三、列出RMAN備份信息——list:

1)list backup of database by backup; 2)list backup by file; 3)list backup summary; 4)list expired backupset/copy; 5)list backup recoverable;   code

四、列出RMAN備份信息——report:

1)report need backup database; ----列出當前須要備份的數據文件 2)report obsolete; 3)report schema; 4)report unrecoverable;   orm

五、備份相關的動態性能表:

v$archived_log:本視圖包含了全部歸檔重作日誌文件的建立狀況,備份狀況以及其餘信息。
v$backup_corruption:這個視圖顯示了rman在哪些備份集中發現了損壞的數據塊。
v$copy_corruptio:本視圖顯示了哪些鏡像複製備份文件已經被損壞。
v$backup_datafile:本視圖一般用來獲取每一個數據文件中非空白數據塊的數量,
從而幫助你建立出大小基本相等的備份集。另外,在視圖中也包含了數據文件中損壞的數據塊的信息。
v$backup_redolog:本視圖顯示了在現有的備份集中飲食有哪些歸檔重作日誌文件。
v$backup_set:本視圖顯示了已經建立的備份集的信息。
v$backup_piece:本視圖顯示了已經建立的備份片斷的信息。

     

4、維護RMAN備份

一、同步數據庫備份和鏡像的邏輯記錄——crosscheck:

1)crosscheck backup; 2)crosscheck copy;   htm

二、刪除備份信息——delete:

1)刪除陳舊備份: RMAN> delete obsolete; 2)刪除expired備份: RMAN> delete expired backup; 3)刪除 expired 副本: RMAN> delete expired copy; 4)刪除特定備份集: RMAN> delete backupset 19; 5)刪除特定備份片: RMAN> delete backuppiece 'd:\backup\DEMO_19.bak'; 6)刪除全部備份集: RMAN> delete backup; 7)刪除特定映像副本: RMAN> delete datafilecopy 'd:\backup\DEMO_19.bak'; 8)刪除全部映像副本: RMAN> delete copy; 9)在備份後刪除輸入對象:

RMAN> delete archivelog all delete input;
RMAN> delete backupset 22 format = ''d:\backup\%u.bak'' delete input;

  

三、還原和恢復數據庫文件:

1)還原是指從全部的備份或鏡像文件中找到一個用於恢復操做的數據文件。 2)恢復是指在還原的數據文件上應用redo日誌或增量備份中記錄的變化,使得數據文件向前滾到一個SCN值或者一個時間點。 3)在對數據庫進行還原恢復操做時,能夠先進行預覽: restore database preview summary; 4)恢復整個數據庫:

startup force mount;----將數據庫至於mount狀態
restore database;----還原數據庫
recover database;----恢復數據庫
alter database open;

5)恢復表空間:

alter tablespace users offline;---- 將表空間涉及的數據文件離線
restore tablespace; ----還原表空間
recover tablespace; ----恢復表空間
alter tablespace users online; ----恢復完成後,再設爲在線

6)對數據壞塊進行恢復:

recover corruption list;----修復全部的壞塊
recover datafile 1 block 33, 44 datafile 2 blocke 1 to 200;

PS: <font color='red'>壞塊會記錄到V$DATABASE_BLOCK_CORRUPTION視圖中,還會記錄在告警日誌和TRACE文件中,能夠經過V$DIAG_INFO查看這些文件的位置,找到相關文件進行壞塊查看。</font>      

5、數據恢復建議器(data recovery advisor)

1)列出當前失敗並肯定修復選項:oracle中失敗是指被Health Monitor監測到的數據損壞,例如邏輯或物理的數據塊損壞、數據文件丟失等; 2)監測到的失敗有不一樣的優先級(critical、hight和low),還有狀態(open和closed); 3)經過list failure能夠查看當前監測到的失敗,若在同一會話中執行advise failure命令,數據庫會列出手工和自動的修復選項以供選擇。 4)通常首先經過手工修復方式來進行修復,若手工修復不成功,再進行自動修復。      

6、閃回數據庫技術

1)想使用閃回數據庫技術,須要先開啓閃回日誌功能。(閃回日誌只能存放在快速恢復區中,而且不會進行歸檔) 2)閃回數據庫不能用於介質恢復和修復數據文件的丟失。 3)閃回數據庫須要在mount狀態下進行。 4)命令:

shutdown immediate ;----調整至mount狀態 
startup mount;
flashback database to scn 1526845;----閃回到過去的某時刻
flashback database to restore point before_points;
flashback database to timestamp to_date('20140510','yyyymmdd');
alter database read only;----將數據庫置爲只讀狀態,進行驗證
shutdown immediate;----若閃回後知足要求,啓動數據庫
startup mount;
alter database open resetlogs;

     

7、指令運行方式

一、單個執行:

RMAN>backup database;   

二、批處理:

RMAN>run{
.......................
.......................
}

這種方式是最常使用的方式,特別對於後臺執行。 好處是若是做業中任何一條命令執行失敗,則整個命令中止執行。   

三、運行腳本:

1)[oracle@oracle ~]$ rman target / @backup_db.rman 2)RMAN> @backup_db.rman 3)RMAN> run { @backup_db.rman } 4)運行存儲在恢復目錄中的腳本(須要首先爲rman 建立恢復目錄): RMAN> run { execute script backup_whole_db }; [oracle@oracle ~]$rman cmdfile=backup_db.rman;

原文出處:https://www.cnblogs.com/WoLykos/p/11683973.html

相關文章
相關標籤/搜索