天天看點

RMAN詳細教程(一):基本指令代碼

RMAN詳細教程(一):基本指令代碼

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

RMAN詳細教程(三):備份腳本的元件和注釋

RMAN詳細教程(四):備份腳本實戰操作

 

一、target——連接配接資料庫

1、本地:

[oracle@oracle ~]$ rman target /
           

2、遠端:

[oracle@oracle ~]$ rman target sys/oracle@orcl 
           

  

二、show——檢視配置

RMAN> show all //總配置參數,具體看configure子產品

CONFIGURE RETENTION POLICY TO REDUNDANCY 1; # default
CONFIGURE 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; # default
CONFIGURE DATAFILE BACKUP 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 SNAPSHOT CONTROLFILE NAME TO‘C:ORACLE..SNCFTEST.ORA’; #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;

保持所有足夠的備份,可以将資料庫系統恢複到最近七天内的任意時刻。任何超過最近七天的資料庫備份将被标記為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 incarnation;

彙總查詢,多備份檔案時,可以對備份檔案有個總體了解。

2、list backup;

列出備份詳細資訊。

3、list backup summary;

簡述可用的備份(TY: B代表備份, LV: F代表全備fullbackup, A表示 Archivelog, 0,1,2 表示備份級别, S表示狀态, A表示available可用, X表示expried過期)。

備份清單
===============
關鍵字     TY LV S 裝置類型 完成時間   段數 副本數 壓縮标記
------- -- -- - ----------- ---------- ------- ------- ---------- ---
11      B  F  A DISK        02-7月 -13 1       1       NO         TAG20130702T162726
12      B  F  A DISK        14-2月 -14 1       1       NO         TAG20140214T140119
13      B  F  A DISK        14-2月 -14 1       1       NO         TAG20140214T140119
14      B  F  A DISK        21-2月 -14 1       1       NO         TAG20140221T125325
15      B  F  A DISK        21-2月 -14 1       1       NO         TAG20140221T125325
16      B  A  A DISK        24-2月 -14 1       1       NO         TAG20140224T125128
           

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。

如果在BACKUP指令中沒有指定FORMAT選項,則RMAN預設使用%U為備份片段命名。

一個佛系的部落格更新者,随手寫寫,看心情吧 (っ•̀ω•́)っ✎⁾⁾

繼續閱讀