RMAN備份須知(一)
1.RMAN備份環境
RMAN備份與恢復至少有以下兩部分組成:
Component | Description | ||
Targetdatabase | 主要備份資料檔案、控制檔案、歸檔日誌檔案 | ||
RMANclient | 主要完成對TargetDatabase的備份和恢復,通過ORACLENET實現與TargetDatabase的連線 |
2.RMAN分配通道
RMAN支援兩種備份裝置:SBT和DISK,分配通道都是基於裝置做分配,RMAN通道實質是一個到儲存裝置的資料流。
1)RMAN手動分配通道
ALLOCATECHANNEL命令在RUN塊中執行,在執行BACKUP、RESTORE等需要進行磁碟I/O操作的命令時,可以將他們放在一個RUN塊中執行,ALLOCATECHANNEL為它們分配通道。
示例: RMAN>RUN{ 2>ALLOCATECHANNELC1DEVICETYPEDISKFORMAT'/u01/app/RMAN_BK/cn_%u'; 3>BACKUPTABLESPACEUSERS; } |
批註:RMAN中執行的每一條BACKUP、RECOVER等命令都至少要求使用一個通道,通道數決定了這些操作執行的並行度,每條ALLOCATECHANNEL命令對應一個通道,如果需要多個通道,執行多條ALLOCATECHANNEL。
2)RMAN自動分配通道
RMAN分配根據這些命令中的設定自動通道:
CONFIGUREDEVICETYPE...PARALLELISM
CONFIGUREDEFAULTDEVICETYPE
CONFIGURECHANNEL
示例:如果沒有手動分配通道,RMAN將會自動分配通道,如下: RMAN>BACKUPDATAFILE3; |
3.AutomaticChannelDeviceConfigurationandParallelism(自動通道配置和並行度)
使用SHOWDEVICETYPE檢視預設通道並行度,如下:
RMAN>SHOWDEVICETYPE; usingtargetdatabasecontrolfileinsteadofrecoverycatalog |
配置預設裝置SBT,如下:
RMAN>CONFIGUREDEFAULTDEVICETYPETOsbt; newRMANconfigurationparameters: RMAN>SHOWDEVICETYPE; RMANconfigurationparametersare: |
通過自動分配通道執行CONFIGUREDEFAULT
DEVICE
TYPE
指定預設裝置型別。例如可以將大部分時間備份到磁碟,偶爾備份到磁帶。
示例: RMAN>CONFIGUREDEVICETYPEDISKPARALLELISM1; RMAN>CONFIGUREDEVICETYPEsbtPARALLELISM2; RMAN>CONFIGUREDEFAULTDEVICETYPETODISK; RMAN>showDEVICETYPE; RMANconfigurationparametersare: |
設定完成之後,RMAN將使用磁碟通道進行備份資料,如下:
RMAN>BACKUPTABLESPACEusers; Startingbackupat30-DEC-13 |
4.ImageCopies(映象拷貝)
ImageCopies是指使用作業系統命令精確的拷貝單個的資料檔案、歸檔日誌檔案或控制檔案。RMAN可以使用ImageCopies修復和恢復操作。
1)UsingRMAN-CreatedImageCopies
如果需要執行修復命令,通過將映像副本拷貝到原先控制檔案或資料檔案的位置。如果存在當前的資料檔案映像副本在磁碟上,那麼將不需要將映像副本放入原先的位置,可以使用映像副本直接對資料檔案進行修復。
2)User-ManagedImageCopies
RMAN可以使用RMAN以外的機制管理映像副本,如本地作業系統檔案複製命令或第三方工具。
3)ProxyCopies(代理拷貝)
Proxycopycanbeusedwithdatafilesorarchivedredologs,asshownintheseexamples:
BACKUPDEVICETYPEsbtPROXYDATAFILE3; BACKUPDEVICETYPEsbtPROXYONLYDATABASE; BACKUPDEVICETYPEsbtPROXYONLYARCHIVELOGALL; |
5.StorageofBackupsonDiskandTape(儲存備份資料)
BackupsofArchivedLogs(備份歸檔日誌)
1)BackupFailoverforArchivedRedoLogs(備份失效歸檔日誌)
RMAN的歸檔重做日誌故障轉移允許RMAN完成備份,即使一些歸檔日誌檔案丟失或損壞。
2)MultiplexedBackupSets(複用備份)
RMAN中提供了三種方式實現Duplexed方式備份:
通過
CONFIGURE...BACKUPCOPIES
命令設定預定義的備份Duplexed方式
CONFIGURE...BACKUPCOPIES命令可以為指定的裝置型別設定預設的備份複製數量。這個配置僅適用於資料檔案與歸檔重做日誌檔案和備份,並且,只有在使用自動分配的通道時才能夠使用CONFIGURE...BACKUPCOPIES命令設定的配置,如下:
RMAN>CONFIGUREDEFAULTDEVICETYPETODISK; RMAN>CONFIGUREDATAFILEBACKUPCOPIESFORDEVICETYPEDISKTO2; RMAN>CONFIGUREARCHIVELOGBACKUPCOPIESFORDEVICETYPEDISKTO2; |
批註:上述命令將DISK裝置上的資料檔案與歸檔檔案的複製數量設定為2,當再次執行BACKUPDATABASE命令時,如果沒有通過ALLCOATECHANNEL分配通道,那麼建立的備份集會自動生成2份備份集。
利用SETBACKUPCOPIES命令指定複用備份
在RUN{}命令塊中利用SETBACKUPCOPIES命令為該命令塊中所有的BACKUP命令設定Duplexed方式,如下:
RMAN>RUN{ executingcommand:SETBACKUPCOPIES Startingbackupat30-DEC-13 |
執行BACKUP命令時指定複合備份
在RMAN中執行BACKUP命令時顯式指定COPIES引數,如下:
RMAN>BACKUPDEVICETYPEDISKCOPIES3DATAFILE4FORMAT'/u01/app/RMAN_BK/bk1_%u','/u01/app/RMAN_BK/bk2_%u','/u01/app/RMAN_BK/bk3_%U'; Startingbackupat30-DEC-13 |
3)BackupsofBackupSets(設定備份集)
設定備份片段名
RMAN預設通道分配時指定了一個引數值為%F的FORMAT引數。
分配通道時指定備份片段名格式,示例如下:
RMAN>RUN{ releasedchannel:ORA_DISK_1 Startingbackupat30-DEC-13 |
設定備份集標籤
備份時可以直接給備份集指定一個名稱(TAG),RMAN預設生成TAG格式為TAGyyyymmddThhmmss,其中TAG和T是固定字元,yyyymmddhhmmss對應執行備份操作的時間。
可以自己為備份集指定標籤,示例如下:
RMAN>BACKUPTABLESPACEUSERSTAGTBS_USRESBAKFORMAT'/u01/app/RMAN_BK/USER_%U'; Startingbackupat30-DEC-13 |
批註:TAG標籤也可以視為備份集的別名。
設定備份片段/備份集大小
RMAN在分配通道時有一個引數MAXPIECESIZE,用來指定備份片段的大小。示例,備份SYSTEM表空間,指定單個備份片段最大不能超過100M,如下:
RMAN>RUN{ releasedchannel:ORA_DISK_1 Startingbackupat30-DEC-13 檢視備份目錄,生成了如下備份檔案: [[email protected]RMAN_BK]$ll -rw-r-----.1oracleoinstall104857600Dec3010:55SYSTEM_22osq8ld_1_1(104857600/1024/1024=100M) |
不僅可以指定備份片段的大小,也可以指定備份集的大小,單個備份集的最大值可以在執行備份命令(或分配通道)時通過MAXSETSIZE引數指定,示例如下:
RMAN>BACKUPDATABASEMAXSETSIZE=100M; |
MAXSETSIZE引數指定的是單個備份集的最大值,與備份片段無關,不過預設情況下,一個備份集對應一個備份片段,因此也相當於指定了備份片段的大小,但是直接指定MAXSETSIZE引數限定備份集大小並非在所有情況下都實用,如果要備份的資料檔案中,任意一個數據檔案超出了指定引數值,則備份就會失敗。對於實際應用中,需要限制生成檔案大小的情況,更多會通過MAXSETSIZE引數限制備份片段,而不會直接限制備份集。
4)是否使用RMAN恢復目錄(RecoveryCatalog)
當沒有恢復目錄時,RMAN相關的備份資訊,比如歸檔檔案路徑、備份集路徑等均儲存在目標資料庫的控制檔案中。RMAN提供了CREATECATALOG命令,再建立恢復目錄之前,需要對為該目錄建立一個獨立表空間和對應的SCHEMA,步驟如下:
1.建立一個獨立表空間 SQL>CREATETABLESPACERMANTBSDATAFILE'/u01/app/oradata/RMANDB/rmantbs01.dbf'size100M; Tablespacecreated. 批註:不要把恢復目錄建立在要備份的目錄資料庫 2.建立一個獨立的SCHEMA,用來記錄備份資訊,並授予相關許可權 SQL>GRANTCONNECT,RESOURCE,RECOVERY_CATALOG_OWNERTORMANCTIDENTIFIEDBYRMANCT; Grantsucceeded. 3.通過RMAN連線到新建立的恢復目錄中 [[email protected]~]$rmancatalogrmanct/rmanct RecoveryManager:Release10.2.0.1.0-ProductiononMonDec3011:56:442013 Copyright(c)1982,2005,Oracle.Allrightsreserved. connectedtorecoverycatalogdatabase RMAN> 4.在RMAN中建立catalog RMAN>CREATECATALOGTABLESPACERMANTBS; 註冊資料庫步驟如下: 1.首先以catalog模式連線到目標資料庫和恢復目錄 [[email protected]~]$rmantarget/catalogrmanct/[email protected] RecoveryManager:Release10.2.0.1.0-ProductiononMonDec3012:01:372013 Copyright(c)1982,2005,Oracle.Allrightsreserved. connectedtotargetdatabase:ORCL(DBID=1362151472) 2.通過如下命令註冊資料庫 RMAN>REGISTERDATABASE; databaseregisteredinrecoverycatalog 之後進行的操作,比如建立備份等操作資訊都會存入恢復目錄中。 批註:若要將已經註冊到catalog中的資料庫取消註冊,如下操作: RMAN>UNREGISTERDATABASE; databasenameis"ORCL"andDBIDis1362151472 Doyoureallywanttounregisterthedatabase(enterYESorNO)?YES |
參考與《塗抹ORACLE》、ORACLE10g官方文件
轉載於:https://blog.51cto.com/dayong2015/1393305