1. 程式人生 > >oracle rman 增量備份完整恢復測試

oracle rman 增量備份完整恢復測試

RMAN備份

sql*plus與作業系統命令列切換
linux:用!符號
window:sql>到c:>用host命令,c:>到sql>用exit。

RMAN備份模式:全備、增量備份、冷備、熱備。

RMAN備份的檔案型別:表空間、資料檔案、控制檔案、引數檔案、歸檔日誌檔案、備份集。

RMAN備份的目的地:磁碟、磁帶、快閃記憶體恢復區。

RMAN通過內部演算法去檢測熱備中的改變塊,這個由RMAN自動完成。                                      

備份的約束條件
1.資料庫必須是mount或者open;
2.不對redo log file備份

備份型別:image copy、backup set。

backup set的特點:
一個backup set包含多個檔案,每個檔案稱為backup piece;
backup set可以備份到磁碟或磁帶上;(image copy不能備份到磁帶)
從backup set提取檔案需要還原操作;
資料檔案backup set支援增量備份和全備;(歸檔檔案的backup set不支援)
backup set不包含從未用過的塊。

backup piece:
backup set裡的一個檔案,大小受限與作業系統;
backup piece能包括多個數據檔案(datafile)的資料塊。

列出備份資訊,顯示備份集資訊。
RMAN>list backup

備份資料庫
RMAN>backup database format 'D:/backup/md_%U';//%U=%u_%p_%c.
檢視RMAN通道的對應的會話sid
select sid,username from v$session order by 2;

backup命令引數:
filesperset:每個備份集的輸入檔案數
maxpiecesize:一個備份片的大小
RMAN>run {
allocate channel d1 device type disk maxpiecesize=100M;
backup database filesperset 3;
}
或者
backup format 'd:/backup/md_%U' database filesperset 3;


刪除備份集
RMAN>delete backupset 43,44 ;//43、44為BS號。

備份資料檔案
RMAN>report schema;
RMAN>backup datafile 4,5  format 'd:/backup/md_%U';//4、5為檔案編號
RMAN>backup datafile 'd:/Oracle/oradata/orcl/system01.dbf' format 'd:/backup/md_%U';

備份表空間
select tablespace_name,contents from dba_tablespace;
RMAN>backup tablespace xxwz_data,xxwz_index format 'd:/backup/md_%U';

備份控制檔案和spfile
1.開啟RMAN自動備份控制檔案和spfile(不啟動system表空間也會自動備份表空間)
RMAN>show all;
RMAN>configure controlfile autobackup on;
2.單獨備份控制檔案和spfile
RMAN>backup current controlfile;
3.附加備份控制檔案和spfile
RMAN>backup datafile 4 include current controlfile;
4.SQL備份控制檔案和spfile
RMAN>sql "alter database backup controlfile to ''d:/tmp/xwx.ctl''";

備份spfile檔案
RMAN>backup spfile format 'd:/backup/sd_%U';
backup copies 2 device type disk SPFILE;

備份歸檔檔案(自動執行alter system archive log current,選擇沒損壞的進行備份)
backup archivelog all format 'd:/backup/ar_%U'  delete all input;//備份完後刪除原來的歸檔日誌

backup archivelog sequence between 44 and 100 thread 1 format 'd:/backup/ar_%U'  delete all input;//備份log sequence number44到100的archivelog

backup archivelog from time "sysdate-15" until time "sysdate-7" format 'd:/backup/ar_%U'  delete all input;//備份前15天到前7天的archivelog

亦可分開來做

backup archivelog from time 'sysdate-15';//備份前15天到今的archivelog

backup archivelog until time 'sysdate-7';//備份7天以前所有的Archivelog

資料檔案和歸檔日誌檔案一起備份
RMAN>backup database plus archivelog format 'd:/backup/db_%U';

併發備份
1.
RMAN>run {
allocate channel c1 type disk;
allocate channel c2 type disk;
allocate channel c3 type disk;
backup incremental level=0
format 'd:/backup/p_%U'
(datafile 1 channel c1 tag='sys')
(datafile 3 channel c2 tag='aux')
(datafile 2,4,5 channel c3 tag='other')
;
 sql 'alter system archive log current';
}
2.
configure device type disk parallelism 3 backup type to backupset;//設定併發為3


複製備份集
backup copies 2 datafile 5 format 'd:/a1/d_%U','d:/a2/d_%U';//複製2個副本

備份備份集
backup backupset all format='e:/rman/backupset_%U.dbf'
backup backupset completed before 'sysdate-2';

image備份
RMAN>copy datafile 5 to 'd:/oracle/xwx.dbf' tag='example';
或者
RMAN>backup as copy datafile 5 format 'd:/oracle/xwx.dbf';
檢視copy資訊
RMAN>list copy

hold backup備份整個資料庫;
full backup:相對於增量備份,備份整個datafile blocks;
incremental backup:增量備份datafile;

操作超過6秒的操作
select sid,sofar,totalwork from v$session_longops;

增量備份等級
0:相當於full backup,備份整個datafile blocks,可以作為增量備份的起點;
1-4:該等級有2個備份模式
差異性增量備份:備份包括從level n or lower的改變塊,n可指定;lower為大數字
累積性增量備份:備份包括從level n-1 or lower的改變塊,n可指定
例如差異性增量備份是備份每天改變的塊,而累積性增量備份從起點開始多天改變的塊。

RMAN>run{
allocate channel d1 type disk;
backup incremental level 1 database format 'xxx/inc_%U';
}  //預設為差異性增量備份

指定為累積性增量備份
RMAN>run{
allocate channel d1 type disk;
backup incremental level 1 cumulative database format 'xxx/inc_%U';

根據SCN進行塊級別的備份,大大縮短備份時間;

RMAN備份讀取整個資料庫檔案進行塊級別檢查時要花費大量時間,可以通過設定快改變跟蹤檔案,避免進行備份時全部對比塊。
alter database enable block change tracking using file 'D:/trace/xx.trc';
alter database disable block change tracking;//同時會刪除xx.trc檔案。

備份標籤
backup incremental level 2 datafile 4 tag='xwxrman';
檢視指定標籤備份
list backup tag='xwxrman';

RMAN相關的動態檢視(corruption=損壞)
v$archive_log
v$backup_corruption
v$copy_corruption
v$database_block_corruption
v$backup_datafile
v$backup_redolog
v$backup_set
v$backup_piece

監控RMAN備份
檢視server process和session的關聯
RMAN> run {
allocate channel d1 type disk;
set command id to 'xwxtry'; //寫一個字串資訊
backup datafile 1 format 'd:/backup/df_%U';
}
然後通過下面的SQL語句就可看到d1程序對應的字串
select sid,spid,client_info
from v$process p,v$session s
where p.addr=s.paddr
and client_info like '%id=xwxtry%';

檢視備份進度(查詢v$session_longops)
select sid,serial#,context,sofar,totalwork round(sofar/totalwork*100,2) "% Complete",
from v$session_longops
where opname like 'RMAN:%'
and opname NOT LIKE 'RMAN: aggregate%';