本節主要介紹如何管理和維護RMAN存儲庫和快速恢復區。
如何管理沒有恢復目錄的RMAN存儲庫?
交叉檢查備份(交叉檢查備份)
刪除備份
用RMAN刪除數據庫
多通道情況下的交叉驗證和刪除操作
如何更改備份記錄的狀態
存檔日誌目錄和手動副本
修改RMAN存儲庫目錄
維護快速恢復區
無需恢復目錄即可管理RMAN存儲庫
備份控制文件
如果沒有恢復目錄控制文件的備份,通過多個鏡像控制文件或操作系統鏡像來備份更改的控制文件更為重要。另外,最好配置控制文件的自動備份。
控制文件自動備份打開
請註意,如果從自動備份或其他備份中恢復控制文件,則最近執行的配置配置內容將被覆蓋回備份時的設置。
監控控制文件記錄重寫
在不恢復目錄的情況下,oracle的控制文件記錄所有歷史備份記錄。為了確保控制文件不會無限增長,oracle提供了壹個初始化參數CONTROL_FILE_RECORD_KEEP_TIME,可以設置控制文件保留時間的閾值。
例如,我們設置CONTROL_FILE_RECORD_KEEP_TIME=任何超過天的記錄都可能被覆蓋。如果沒有超過天的記錄,oracle將擴展控制文件的大小。如果控制文件的大小由於操作系統的限制(如磁盤空間已滿)而無法擴展,oracle將強制覆蓋最舊的記錄,並將這種情況記錄在alter log中,如下所示。
kccwnc:覆蓋了以下控制文件記錄:RECID # Recno Record timestamp//::Thread = Seq # =備份集關鍵字:stamp = count = Low SCN:x af f//::Next SCN:x af b//::Resetlogs SCN和time SCN:x//::Block count = Block size =
快速恢復區的閃速恢復區與控制文件記錄保存時間參數CONTROL_FILE_RECORD_KEEP_TIME的交互。
如果我們將RMAN備份保存在快速恢復區,控制文件會記錄恢復區文件的創建記錄,因為壹般來說,文件創建的記錄要晚於執行備份的信息。如果有超過CONTROL_FILE_RECORD_KEEP_TIME參數中指定時間的備份文件,ORACLE會嘗試刪除這些文件,否則ORACLE會增加控制文件的大小,並將這種情況記錄在alter log中,如下所示。
kccwnc:正在嘗試為Oracle管理的文件擴展控制文件節nnnn
如果控制文件無法擴展,alter log中將顯示以下信息。
警告:Oracle管理的文件文件名對於控制文件是未知的。這是控制文件大小限制的結果,無法保留所有恢復區文件
也就是說,它不能滿足備份保留冗余策略來保存備份。
為了避免和減少這種情況,我們可以采取以下措施。
創建塊大小為k的控制文件如果我們要為控制文件設置塊大小為k的塊,我們必須首先將SYSTEM表空間設置為大於或等於控制文件使用的塊大小,然後我們必須在修改控制文件BLOCK_SIZE後重建控制文件。
使用備份恢復區命令備份快速恢復區,以便刪除快速恢復區中的文件,或者減少備份保留時間或冗余。在控制文件中維護RMAN備份資料檔案庫。
交叉驗證備份交叉檢查備份
驗證備份庫中的備份記錄是否與磁盤(或磁帶)上的備份文件壹致。如果您將備份保存在磁盤上,請交叉檢查文件頭是否有效。如果您將備份保存在磁帶上,請交叉檢查該文件是否存在。備份文件的三種可能狀態是可用、不可用和過期。我們可以使用列表生活。查看或直接查詢v $ backup _ filesrc _ datafile _ copyrc _ archived _ log等視圖。
給出幾個CORSSCHECK示例命令。
交叉檢查備份;#檢查備份集代理副本和映像副本交叉檢查數據庫副本;交叉檢查備份。cross check backup piece TAG = nightly _ backup;交叉檢查控制文件副本/tmp/控制ctl交叉檢查數據文件副本;交叉檢查代理;
交叉驗證指定數據庫文件的備份。
#這些交叉檢查命令使用配置的通道,這意味著它們#總是檢查磁盤設備如果您配置了*** t通道,那麽RMAN #也會檢查*** t設備交叉檢查數據文件ora _ home/oradata/trgt/system DBF的備份在SYSDATE之後完成;交叉檢查ARCHIVELOG所有SPFILE的備份;
刪除備份
刪除指定的備份
首先,使用LIST命令查找備份的唯壹標識。
列出數據庫存檔日誌的備份全部;#列出數據庫文件和日誌列表副本的備份;#僅列出映像副本列表備份;#列出所有內容
刪除指定的備份存儲庫記錄和備份文件。
刪除備份件;刪除control file copy/tmp/control CTL;刪除NOPROMPT ARCHIVELOG,直到SEQUENCE =;
批量刪除
刪除備份;#刪除磁盤和磁帶上的所有備份刪除表空間用戶的備份設備類型* * * t;#僅從磁帶中刪除刪除控制文件的副本,如/tmp/%;# LIKE指定拷貝的名稱DELETE NOPROMPT ARCHIVELOG所有備份時間到* * * t;#僅當已經將X備份到磁帶時才備份
刪除無效備份
RMAN & gt;交叉檢查BAKCUPRMAN & gt;刪除過期的備份;
刪除過期的備份
RMAN & gt;刪除過時的;
如果沒有指定其他參數,RMAN默認根據保留冗余策略查找過期的備份,刪除它相當於
刪除過時的冗余=;
刪除過期備份也可以指定刪除,例如,根據時間冗余策略。
刪除過時的天恢復窗口;
強制刪除備份
如果沒有執行交叉檢查,並且磁盤上的備份文件確實被刪除了,我們將在刪除備份時收到來自RMAN的以下錯誤消息。
RMAN & gt;刪除備份標簽TAG T;使用通道ORA_DISK_ backup段列表BP關鍵字Pc# Cp#狀態設備類型段名稱可用磁盤d:\ Oracle \ product \ flash _ r ecovery _ area \ Rome \ backup set \ _ _ \ o _ MF _ nn NDF _ tagt _ vxzth g _ bkp是否確實要刪除上述對象(輸入Yes RMAN:警告:由於狀態不匹配,您不能刪除對象(對於磁盤通道)。RMAN:請使用CROSSCHECK命令更正狀態。RMAN:不匹配對象列表RMAN:= = = = = = = = = = = = = = = = = = = = = = = = = = = = RMAN:對象類型文件名/句柄RMAN:RMAN:backuppieced:\ Oracle \ product \ flash _ recovery _ area \ Rome \ backup set \ _ \ o _ MF _ nn NDF _ tagt _ vxzth g _ bkp我們可以使用帶force參數的選項強制刪除備份RMAN & gt;刪除強制備份標簽標簽T;使用通道ORA_DISK_ backup段列表BP關鍵字Pc# Cp#狀態設備類型段名稱可用磁盤d:\ Oracle \ product \ flash _ r ecovery _ area \ Rome \ backup set \ _ _ \ o _ MF _ nnndf _ tagt _ vxzth g _ bkp是否確定要刪除上述對象(輸入Yes已刪除備份段備份段句柄= d: \ Oracle \ product \ flash _ recovery _ area \ Rome \ back set \ _ \ o _ MF _ nnndf _ tagt _ vxzth g _ bkprecid = stamp =對象已刪除。
多個通道執行交叉驗證和刪除備份。
在執行交叉檢查和刪除之前,您可以配置或手動分配多個通道。RMAN將搜索和刪除在不同類型的設備上執行的備份文件。以下情況適用。
使用壹個命令交叉驗證或刪除不同設備上備份的文件(例如,磁帶和磁盤上有備份文件)。
交叉驗證或刪除備份到RAC環境中每個節點的備份文件。
RMAN如何在多通道中執行交叉檢查和刪除
例如,我們的備份文件都在磁盤上,而磁帶上沒有備份文件,我們給出以下備份腳本,然後RMAN將執行前兩個磁盤交叉檢查,而不是第三個磁帶交叉檢查。
運行{為維護設備類型分配通道磁盤連接SYS/Oracle @ node;為維護設備類型磁盤連接SYS/oracle@node分配通道;為*** t型維護設備分配通道;交叉檢查數據庫備份;}
請註意,如果修復了被RMAN標記為過期的備份文件,我們將在執行刪除過期備份命令後收到以下提示。
RMAN & gt;刪除過期的備份;使用通道ORA_DISK_ backup段列表BP關鍵字Pc# Cp#狀態設備類型段名稱過期磁盤d:\ Oracle \ product \ flash _ recovery _ area \ Rome \ backup set \ _ _ \ o _ MF _ nn NDF _ tagt _ wf cyg _ bkp是否確定要刪除上述對象(輸入是或否?是RMAN:警告:由於狀態不匹配,您不能刪除(磁盤通道的)對象。RMAN:請使用CROSSCHECK命令更正狀態。RMAN:不匹配對象列表RMAN:= = = = = = = = = = = = = = = = = = = = = = = = = = = RMAN:對象類型文件名/句柄RMAN:RMAN:backuppieced:\ Oracle \ product \ flash _ recovery _ area \ Rome \ back set \ _ \ o _ MF _ nnndf _ tagt _ wf cyg _ bkp。
磁盤和磁帶備份的命令交叉驗證示例
配置設備類型***測試並行度;將默認設備類型配置為* * * t;交叉檢查數據庫備份;
示例輸出文件如下
分配的通道:ORA _ SBT _ TAPE _ channel ORA _ SBT _ TAPE _:sid = devtype = SBT _ TAPE channel ORA _ SBT _ TAPE _:警告:Oracle測試磁盤API使用通道ORA _DISK_ crosschecked備份條目:發現可用備份條目句柄=/oracle/dbs/c esv _ _ recid = stamp = cross checked備份條目:發現可用備份條目句柄=/Oracle/DBS/ c recid = stamp = cross checked backup piece:發現可用的備份片段handle= c erb _ _ recid = stamp = cross checked backup piece:發現可用的備份片段handle = c巴爾_ _ recid = stamp = cross checked backup piece:發現可用的備份片段handle=c recid= stamp=
如果沒有配置磁帶備份設備,也可以手動執行通道分配。
為*** t型維護設備分配通道;交叉檢查數據庫備份;
RAC環境中的交叉驗證示例
配置設備類型磁盤並行度;配置通道設備類型磁盤連接SYS/Oracle @ node _;配置通道設備類型磁盤連接SYS/Oracle @ node _;交叉檢查備份;
刪除磁帶和磁盤備份的示例
配置設備類型***測試並行度;將默認設備類型配置為* * * t;刪除BACKUPSET
示例輸出文件如下
使用通道ORA _ SBT _磁帶_使用通道ORA _磁盤_備份條目列表BP密鑰BS密鑰Pc# Cp#狀態設備類型條目名稱可用SBT _磁帶c erb _ _不可用SBT _磁帶c巴爾_ _可用SBT _磁帶c erce_ _可用SBT _磁帶c可用磁盤/oracle/dbs/ c esv _ _可用磁盤/oracle/dbs/ c是否確實要刪除上述對象(輸入是或否)?y已刪除備份條目備份條目句柄=/Oracle/DBS/c esv _ _ recid= stamp=已刪除備份條目備份條目句柄=/oracle/dbs/ c recid= stamp=已刪除備份條目備份條目句柄= c erb _ _ recid= stamp=已刪除備份條目備份條目句柄= c巴爾_ _ recid = stamp =已刪除備份條目備份條目句柄= c erce_ _ recid= stamp=已刪除備份條目備份條目句柄=c recid= stamp=
釋放多個通道以下命令可以釋放所有通道。
發布渠道;
使用RMAN刪除數據庫
當在裝載狀態下連接到目標數據庫時,RMAN可以刪除目標數據庫,而無需連接到恢復目錄。如果RMAN同時連接到恢復目錄並指定參數包括副本和備份,RMAN將刪除恢復目錄中的備份記錄。
生成備份文件目錄
RMAN & gt;目錄以d:\ Oracle \ product \ \ flash _ recovery _ area開頭;RMAN & gt;刪除BACKUPSET#刪除所有備份RMAN & gt;刪除副本;#刪除所有映像副本(包括歸檔日誌)RMAN & gt;刪除數據庫;#刪除所有數據庫文件並註銷數據庫
修改備份記錄的狀態
更改數據文件副本/tmp/控制ctl不可用;更改歸檔日誌序列的副本已存在且不可用;更改備份不可用;無法更改SPFILE標記TAG T的備份;更改可用的數據文件副本/tmp/系統dbf更改可用的BACKUPSET更改可用SPFILE標簽TAG T的備份;
修改備份記錄的狀態,以便保留冗余策略之外的備份不會被刪除。
我們可以直接指定備份...執行備份時,保持將備份文件標記為長期備份。需要註意的壹點是,如果我們使用恢復目錄來存儲備份記錄,我們應該執行備份……永久保存。
我們還可以使用CHANGE命令將備份標記為長期備份
更改BACKUPSET KEEP更改BACKUPSET NOKEEP更改DATAFILECOPY /tmp/system dbf保留到SYSDATE+;
維護存儲庫目錄
如果我們的壹些備份文件是由其他RMAN程序生成的,並且在我們的RMAN存儲庫中沒有這些備份的記錄,我們可以使用CATALOG命令來維護我們的備份記錄。
在下列情況下,您需要維護存儲庫的備份記錄
我們使用其他命令(如系統命令等。)生成備份文件,並希望將這些文件添加到RMAN存儲庫中。
使用備份控制文件執行恢復並在恢復過程中更改歸檔日誌的路徑或格式,存儲庫中沒有恢復所需的歸檔日誌文件,我們必須將這些日誌添加到RAMN存儲庫中。
如果我們在沒有級別備份的情況下執行數據文件的副本備份,並且我們希望直接執行級別的增量備份,我們可以通過增加RMAN存儲庫的目錄來實現,盡管不建議這樣做,但這確實是可行的。
數據庫版本升級開始使用RMAN,我們可以將之前的熱備份文件添加到RMAN存儲庫中。
舉幾個例子來維護用戶備份文件到存儲庫目錄。
SQL & gtALTER表空間用戶開始備份;% CP $ ORACLE _ HOME/oradata/trgt/users DBF/tmp/users DBF;SQL & gtALTER TABLESPACE users結束備份;RMAN & gt;目錄數據文件副本/tmp/用戶dbfCATALOG backup piece/disk/dtq d _ _/disk/BDT qdou _ _;
維護存儲庫目錄的備份集
CATALOG backup piece/disk/dtq d _ _/disk/BDT qdou _ _;
備份集文件添加到存儲庫目錄後,可以在以下系統視圖中找到。
V $備份件V $備份集V $備份數據文件V $備份重做日誌和V $備份文件
將所有備份文件保存到存儲庫目錄中。
RMAN & gt;目錄恢復區;#編錄恢復區RMAN中的所有文件& gt目錄以+disk開頭;#編錄ASM磁盤組中的所有文件RMAN & gt;目錄以/fs /datafiles/開頭;#對目錄中的所有文件進行編目
從存儲庫目錄中刪除記錄
更改歸檔日誌取消目錄更改控制文件副本/tmp/控制ctl取消目錄;更改data file copy/tmp/system DBF UNCATALOG;
Lishi Xinzhi/Article/program/Oracle/201311/18820