1.Rman備份的基本命令
一.target-連線資料庫
1.本地:
[oracle@oracle ~]$ rman target /
2.遠端:
[oracle@oracle ~]$ rman target sys/oracle@orcl
二.show-檢視配置
RMAN>show all //總配置引數,具體看configure模組
RMAN> show all; RMAN configuration parameters for database with db_unique_name ORCL are: CONFIGURE RETENTION POLICY TO REDUNDANCY 1; # defaultCONFIGURE BACKUP OPTIMIZATION OFF; # default CONFIGURE DEFAULT DEVICE TYPE TO DISK; # default CONFIGURE CONTROLFILE AUTOBACKUP OFF; # default CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '%F'; # default CONFIGURE DEVICE TYPE DISK PARALLELISM 1 BACKUP TYPE TO BACKUPSET; # default CONFIGURE DATAFILEBACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default CONFIGURE ARCHIVELOG BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default CONFIGURE MAXSETSIZE TO UNLIMITED; # default CONFIGURE ENCRYPTION FOR DATABASE OFF; # default CONFIGURE ENCRYPTION ALGORITHM 'AES128'; # default CONFIGURE COMPRESSION ALGORITHM'BASIC' AS OF RELEASE 'DEFAULT' OPTIMIZE FOR LOAD TRUE ; # default CONFIGURE ARCHIVELOG DELETION POLICY TO NONE; # default CONFIGURE SNAPSHOT CONTROLFILE NAME TO '/data/oracle/product/11.2.0/db_1/dbs/snapcf_orcl.f'; # default
RMAN> show channel; // 通道分配
RMAN> show device type; // IO 裝置型別
RMAN> show retention policy; // 儲存策略
RMAN> show datafile backup copies; // 多個備份的拷貝數目
RMAN> show maxsetsize; // 備份集大小的最大值
RMAN> show exclude; // 不必備份的表空間
RMAN> show backup optimization; // 備份的優化
三.configure-調整配置
1、configure retention policy to redundancy 1;
捨棄備份原則,共三種,分別是:
(1)CONFIGURE RETENTION POLICY TO RECOVERY WINDOW OF 7 DAYS;
保持所有足夠的備份,可以將資料庫系統恢復到最近七天之內的任意時刻。任何超過最近7天的資料庫備份將被標記為obsolete
(2)CONFIGURE RETENTION POLICY TO REDUNDANCY 5;
保持可以恢復的最新的5份資料庫備份,任何超過最新5份的備份都將被標記為redundancy。一般採用的方式,預設值為1,可以設定為5.
(3)CONFIGURE RETENTION POLICY TO NONE;
不需要保持策略,clear將恢復回預設的保持策略
2、CONFIGURE BACKUP OPTIMIZATION OFF;
預設為關閉,如果開啟,rman將對備份的資料檔案及歸檔等檔案進行一種優化的演算法。
3、Configure default device type to disk;
預設值是硬碟,是指定所有I/O操作的裝置型別是硬碟或者磁帶(SBT)。
4、CONFIGURE CONTROLFILE AUTOBACKUP OFF;
強制資料庫在備份檔案或者執行改變資料庫結構的命令之後將控制檔案自動備份,預設值為關閉。這樣在控制檔案和catalog丟失後,控制檔案仍然可以恢復。
5、CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '%F';
配置控制檔案的備份路徑和備份格式
6、CONFIGURE DEVICE TYPE DISK PARALLELISM 1;
配置資料庫裝置型別的並行度,預設為1。
7.CONFIGURE DATAFILE BACKUP COPIES FOR DEVICE TYPE DISK TO 1;
配置每次備份的copy數量。
8、CONFIGURE ARCHIVELOG BACKUP COPIES FOR DEVICE TYPE DISK TO 1;
配置歸檔日誌存放的裝置型別。
9、configure maxsetsize 大小;
配置備份集的最大尺寸,預設值是unlimited,單位bytes,K,M,G;
10、CONFIGURE SNAPSHOT CONTROLFILE NAME TO 'C:ORACLE…SNCFTEST.ORA';
配置控制檔案的快照檔案的存放路徑和檔名,這個快照檔案是在備份期間產生的,用於控制檔案的讀一致性。
11、CONFIGURE CHANNEL DEVICE TYPE DISK FORMAT 'C:...%d_DB_%u_%s_%p';
配置備份檔案的備份路徑和備份格式。
12、CONFIGURE CHANNEL DISK CLEAR;
用於清除上面的通道配置。
13、CONFIGURE EXCLUDE FOR TABLESPACE[CLEAR];
不備份指定的表空間到備份集中,對只讀表空間是非常有用的。
14、configure channel device type disk format 'e:\backupb%d_db_%u';
將備份檔案儲存到e:\backupb,後面的%d_db_%u是儲存格式。
15、configure controlfile autobackup format for device type disk to 'e:\backupcontrol%F';
指定control file儲存在另一個路徑: e:\backupcontrol,後面的%F是儲存格式。
四、List-列出備份集合資料檔案映象
1、list incamation;
彙總查詢,多備份檔案時,可以對備份檔案有個總體瞭解
2.list backup;
列出備份詳細資訊
3.list backup summary;
簡述可用的備份(TY:B代表備份,LV:F代表全備,A表示Archivelog,0,1,2表示備份級別,S表示狀態,A表示available可用,X表示expried過期)
RMAN> list backup summary; List of Backups =============== Key TY LV S Device Type Completion Time #Pieces #Copies Compressed Tag ------- -- -- - ----------- --------------- ------- ------- ---------- --- 1 B F A DISK 21-OCT-21 1 1 NO TAG20211021T221229 2 B F A DISK 21-OCT-21 1 1 NO TAG20211021T222404 3 B F A DISK 21-OCT-21 1 1 NO TAG20211021T222404 4 B F A DISK 21-OCT-21 1 1 NO TAG20211021T222404 5 B F A DISK 01-DEC-21 1 1 NO TAG20211201T103851 6 B F A DISK 01-DEC-21 1 1 NO TAG20211201T103851 7 B F A DISK 01-DEC-21 1 1 NO TAG20211201T114523 8 B F A DISK 01-DEC-21 1 1 NO TAG20211201T114523 9 B F A DISK 01-DEC-21 1 1 NO TAG20211201T115817 10 B F A DISK 01-DEC-21 1 1 NO TAG20211201T131218 11 B F A DISK 01-DEC-21 1 1 NO TAG20211201T135254 12 B F A DISK 01-DEC-21 1 1 NO TAG20211201T211602 13 B F A DISK 01-DEC-21 1 1 NO TAG20211201T211602
4、list backup by file;
按照檔案型別列出以下四種類型列表;
資料檔案備份列表、已存檔的日誌備份列表、控制檔案備份列表、spfile備份的列表
5、list backup of database summary;
6、list backup of tablespace users;
7、list backup of archivelog all;
檢視已經備份的 archive log 情況。
8、list archivelog all;
檢視目前所有的archivelog檔案 (可能包含已經備份的, 除非你在備份時有引數 delete input file 刪除了)。
9、list backup of spfile;
10、list backup of controlfile;
11、list backup verbose;
12、list backup of datafile 1 [n | <dir>];
13、list backup of archivelog from sequence 1000 until sequence 1020;
14、list backupset tag=TAG20140317T155753;
15、list expried backup;
列出過去的備份檔案。
五、Report - 顯示儲存倉庫(Repository)中詳細的分析資訊
1、report schema;
報告目標資料庫的物理結構
2、report need backup;
報告需要備份的資料檔案(根據條件不同)
3、report need backup days 3;
最近三天沒有備份的資料檔案(如果出問題的話,這些資料檔案將需要最近3天的歸檔日誌才能恢復)。
4、report need backup redundancy 3;
報告出冗餘次數小於3的資料檔案。
5、report need backup recovery window of 3 days;
報告出恢復需要3天歸檔日誌的資料檔案。
6、report obsolete;
報告已經丟棄的備份(前提是設定了備份策略)。
7、report unrecoverable;
報告當前資料庫中不可恢復的資料檔案(即沒有這個資料檔案的備份、或者該資料檔案的備份已經過期)。
8、report schema at time ‘sysdate – 7’;
9、report need backup days 2 tablespace system;
六、Delete --刪除相關的備份集或映象副本的物理檔案,同時將刪除標記delete更新到控制檔案
delete backupset; delete backupset n; delete obsolete; -- 刪除荒廢 delete noprompt obsolete; -- 不提示, 刪除荒廢 delete noprompt expired backup; -- 不提示, 刪除不在磁碟上的備份集(可以先用crosscheck同步確認一下) delete obsolete redundancy 2; delete noprompt copy delete noprompt backupset tag TAG20140317T14432; delete obsolete recovery window of 7 days; delete expired backupset; delete expired copy; delete expired archivelog all;
七、Crosscheck---設定狀態Available(可用)或者Expired(不可用)
執行crosscheck時,RMAN檢查目錄中列出的每個備份集或副本並且判斷他們是否存在與備份介質上。
如果備份集或副本不存在與備份介質上,它就會被標記為expired, 並且不能用於任何還原操作;
如果備份集或副本存在與備份介質上,它就會維持available狀態。
如果以前被標記為expired 的備份集或副本再次存在於備份介質上,crosscheck 命令就會將它標記回available。
1、RMAN 備份檢驗的幾種狀態:
expired: 物件不存在於磁碟或磁帶。
available: 物件處於可用狀態。
unavailabe: 物件處於不可用狀態
2、expired 與 obsolette 的區別:
(1)對於EXPIRED狀態,與crosscheck命令是密切相關的,RMAN通過crosscheck命令檢查備份是否存在於備份介質上, 如果不存在,則狀態由AVAILABLE改為EXPIRED。
(2)對於obsolete狀態,是針對MAN備份保留策略來說的,超過了這個保留策略的備份,會被標記為obsolete,但其狀態依舊為AVAILABLE,我們可以使用report obsolete來檢視已廢棄的備份。
RMAN>crosscheck backup; --校驗備份片(???) RMAN> crosscheck backupset; --校驗備份集 RMAN> crosscheck copy; --校驗映象副本 RMAN> crosscheck backup of controlfile; --校驗備份的控制檔案 RMAN> crosscheck backup of archivelog all; --校驗所有備份的歸檔日誌 RMAN> crosscheck backup of datafile 1,2; --校驗datafile 1,2 RMAN> crosscheck backup of tablespace sysaux,system; --校驗表空間sysaux,system RMAN> crosscheck backup completed between '13-OCT-10' and '23-OCT-10'; --校驗時間段,時間段格式由NLS_DATE_FORMAT設定 RMAN> crosscheck backupset 1067,1068; --校驗指定的備份集
八、backup常用命令
1、將備份集放到快速恢復區中:
1)歸檔模式下:
backup database plus archivelog;
2)非歸檔模式下:
shutdown immediate; # 關閉一致性後,開啟到mount狀態 backup database
2、指定備份片段的存放路徑和命令規則
backup format '/u01/app/oracle/oradata/enmo1/AL_%d/%t/%s/%p' archivelog like '%arc_dest%';
3、備份成映象檔案
backup as copy
4、設定備份標記(每個標記必須唯一,相同的標記可以用於多個備份只還原最新的備份)
backup database tag='full_bak1';
5、設計備份集大小(必須大於資料庫總資料庫檔案的大小,否則會報錯)
backup database maxsetsize=100m tag='datafile1';
6、設定備份大小(磁帶或檔案系統限制)
run { allocate channel c1 type disk maxpicecsize 100m format '/data/backup/full_0_%U_%T'; backup database tag='full_0'; release channel c1; }
PS:
可以在allocate子句中設定每個備份片的大小,以達到磁帶或系統限制
也可以在configure中設定備份片大小
Configure channel device type disk maxpiecesize 100 m Configure channel device type disk clear;
7、備份集的儲存策略
backup database keep forever; --永久保留備份檔案, 這種需要有恢復目錄的支援 backup database keep until time='sysdate+30'; --儲存備份30天
8、重寫configure exclude命令
backup databas noexclude keep forever tag='test backup';
9、檢查資料庫錯誤
backup validate database;
使用RMAN來掃描資料庫的物理/邏輯錯誤,並不執行實際備份。
10、跳過離線,不可存取或只讀檔案
backup database skip readonly; backup database skip offline; backup database skip inaccessible; backup database ship readonly skip offline ship inaccessible;
11、強制備份
backup database force;
12、基於上次備份時間備份資料檔案
(1)只備份新增的新資料檔案:
backup database not backed up;
(2)備份"在限定時間週期內"沒有被備份的資料檔案
backup database not backed up since time='sysdate-2';
13、備份操作期間檢查邏輯錯誤
backup check logical database; backup validate check logical database;
14、生成備份副本
backup database copies=2;
15、備份控制檔案
backup database device type disk includ current controlfile;
九、Format引數
%a:Oracle資料庫的activation ID即RESETLOG_ID。
%c:備份片段的複製數(從1開始編號,最大不超過256)。
%d:Oracle資料庫名稱。
%D:當前時間中的日,格式為DD。
%e:歸檔序號。
%f:絕對檔案編號。
%F:基於"DBID+時間"確定的唯一名稱,格式的形式為c-IIIIIIIIII-YYYYMMDD-QQ,其中IIIIIIIIII 為該資料庫的DBID,YYYYMMDD為日期,QQ是一個1~256的序列。
%h:歸檔日誌執行緒號。
%I:Oracle資料庫的DBID。
%M:當前時間中的月,格式為MM。
%N:表空間名稱。
%n:資料庫名稱,並且會在右側用x字元進行填充,使其保持長度為8。
%p:備份集中備份片段的編號,從1開始。
%s:備份集號。
%t:備份集時間戳。
%T:當前時間的年月日格式(YYYYMMDD)。
%u:是一個由備份集編號和建立時間壓縮後組成的8字元名稱。利用%u可以為每個備份集生成一個唯一的名稱。
%U:預設是%u_%p_%c的簡寫形式,利用它可以為每一個備份片段(即磁碟檔案)生成一個唯一名稱,這是最常用的命名方式。執行不同備份操作時,生成的規則也不同,如下所示:
生成備份片段時,%U=%u_%p_%c; 生成資料檔案映象複製時,%U=data-D-%d_id-%I_TS-%N_FNO-%f_%u; 生成歸檔檔案映象複製時,%U=arch-D_%d-id-%I_S-%e_T-%h_A-%a_%u; 生成控制檔案映象複製時,%U=cf-D_%d-id-%I_%u。
%Y:當前時間中的年,格式為YYYY。
PS:
如果在BACKUP命令中沒有指定FORMAT選項,則RMAN預設使用%U為備份片段命名。