Technorati 标簽: RMAN, 備份, oracle
RMAN備份環境配置-進階
配置 RMAN 制作備份到媒體管理器在大多數平台上,備份到錄音帶上,或從錄音帶上轉儲時,必須将錄音帶與Oracle內建起來。媒體管理器不是Oracle産品,是以如果選擇RMAN與媒體管理器一起工作,必須從供應商處得到所有産品相關的資訊。
配置RMAN使用媒體管理器的基本步驟如下:
RMAN 使用媒體管理器的要求首先必須安裝它并且確定RMAN能夠與它通信,通常這一步在供應商文檔上有具體說明。安裝完成後,首先需要確定非RMAN備份可以正确工作。這個步驟可以使随後的故障處理更容易,可以確定媒體管理其能夠正确在OS上工作。
然後得到并安裝第三方媒體管理子產品與伺服器內建。這個子產品包含Oracle用來加載和通路媒體管理器的媒體管理器庫。通常這個産品需要單獨購買。
定位媒體管理庫: SBT_LIBRARY 參數當為RMAN配置設定或配置通道用來與媒體管理器通信時,需要設定SBT_LIBRARY參數提供媒體管理軟體庫。在實際RMAN執行時,會嘗試加載SBT_LIBRARY中的庫。如果沒有設定該值,将在平台的預設位置查找,$ORACLE_HOME/lib/libobk.so,字尾可能為.sl, .a等,在Windows下為%ORACLE_HOME%/bin/orasbt.dll。
預設情況下,庫不是資料庫安裝的一部分,必須安裝媒體管理軟體。
如果RMAN定位錯誤,将會得到ORA-27211錯誤。
無論何時通道配置設定失敗,USER_DUMP_DEST下的跟蹤檔案都會寫入以下資訊:
SKGFQ OSD: Error in function sbtinit on line 2278
SKGFQ OSD: Look for SBT Trace messages in file /oracle/rdbms/log/sbtio.log
SBT Initialize failed for /oracle/lib/libobk.so
測試媒體管理庫是否以正确內建在确認資料庫伺服器能夠加載媒體管理庫後,需要測試以確定RMAN能夠備份到媒體管理器。
為 RMAN 備份配置媒體管理軟體安裝完媒體管理軟體後,執行任何供應商要求的配置以使軟體可以接受RMAN備份。有可能要配置媒體池,使用者,類等等。
然後确定ALLOCATE CHANNEL或CONFIGURE CHANNEL所需的PARMS設定。以及BACKUP推薦的FORMAT格式。PARMS參數用來發送指令到媒體管理器。具體在産品文檔中會有說明。
配置媒體管理器的備份片名和大小因為媒體管理器可能會有大小限制,是以需要配置RMAN限制這些備份片的名稱和大小。
配置備份片名:備份片名由BACKUP,CONFIGURE CHANNEL,ALLOCATE CHANNEL的FORMAT字元串定義。
配置備份片大小:備份片大小由CONFIGURE CHANNEL,ALLOCATE CHANNEL的MAXPIECESIZE參數決定。
在媒體管理器上測試 ALLOCATE CHANNEL使用以下過程确認RMAN在為媒體管理器配置設定通道時可以加載媒體管理庫:
1. 連接配接到目标庫;
2. 運作帶PARMS的ALLOCATE CHANNEL指令,如下:
RUN
{
ALLOCATE CHANNEL c1 DEVICE TYPE sbt
PARMS='SBT_LIBRARY=/mediavendor/lib/libobk.so ENV=(NSR_SERVER=tape_srv,NSR_
GROUP=oracle_tapes)';
}
如果沒有得到錯誤消息,則RMAN正确的加載了媒體管理庫,否則會發生ORA-27211錯誤。
RMAN-00571: ===========================================================
RMAN-00569: ======= ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03009: failure of allocate command on c1 channel at 11/30/2001 13:57:18
ORA-19554: error allocating device, device type: SBT_TAPE, device name:
ORA-27211: Failed to load Media Management Library
Additional information: 25
此時就需要重新檢查安裝是否正确,SBT_LIBRARY是否正确。
測試備份到媒體管理庫在測試通道配置設定以後,就需要測試備份。
RUN
{
ALLOCATE CHANNEL c1 DEVICE TYPE sbt
PARMS='SBT_LIBRARY=/mediavendor/lib/libobk.so
ENV=(NSR_SERVER=tape_srv,NSR_GROUP=oracle_tapes)';
BACKUP CURRENT CONTROLFILE;
}
PARMS和FORMAT依賴于具體的産品。如果成功就可以開始備份。錯誤的情況包括如下:
ORA-19511:沒有正确配置媒體管理軟體;
備份挂起:媒體管理器等待挂載錄音帶;
配置 SBT 通道使用媒體管理器1.RMAN> CONFIGURE CHANNEL DEVICE TYPE sbt
PARMS='SBT_LIBRARY=/mediavendor/lib/libobk.so
ENV=(NSR_SERVER=tape_svr,NSR_CLIENT=oracleclnt,NSR_GROUP=ora_tapes)'
FORMAT "BACKUP_%U";
2.RMAN> BACKUP DEVICE TYPE sbt CURRENT CONTROLFILE;
3.RMAN> SHOW CHANNEL FOR DEVICE TYPE sbt;
4.RMAN> CONFIGURE DEFAULT DEVICE TYPE TO sbt;
配置備份優化備份優化僅僅适用于以下指令:
·BACKUP DATABASE
·BACKUP ARCHIVELOG…ALL | LIKE;
·BACKUP BACKUPSET ALL
任何時候都可以使用BACKUP指令的FORCE選項覆寫,如下:
BACKUP DATABASE FORCE;
BACKUP ARCHIVELOG ALL FORCE;
預設情況下,備份優化是OFF的,可以通過如下指令啟用:
CONFIGURE BACKUP OPTIMIZATION ON;
配置備份複制: CONFIGURE... BACKUP COPIESCONFIGURE ... BACKUP COPIES聲明對于特定類型的備份在特定的裝置上需要建立的備份集份數。設定複制的CONFIGURE僅僅影響資料檔案,控制檔案,歸檔日志,并且僅僅是到備份集上的。
控制檔案自動備份除外。
CONFIGURE DATAFILE BACKUP COPIES FOR DEVICE TYPE DISK TO 2;
CONFIGURE ARCHIVELOG BACKUP COPIES FOR DEVICE TYPE sbt TO 3;
如果将複制特征和多個FORMAT字元串一起使用,可以指令每個備份集的名稱。如下:
BACKUP DATABASE FORMAT '/tmp/%U', '?/dbs/%U', '?/oradata/%U';
此時,RMAN會為每個備份集中的備份片建立3個備份,然後根據FORMAT中的字元串進行命名。
如果要清除,可以執行以下指令:
CONFIGURE DATAFILE BACKUP COPIES FOR DEVICE TYPE sbt CLEAR;
如果不希望設定永久性的複制特定,可以使用BACKUP COPIES和SET BACKUP COPIES指令。
使用 SHOW... BACKUP COPIES 顯示複制的份數連接配接到目标庫後,可以運作SHOW ARCHIVELOG BACKUP COPIES或SHOW DATAFILE BACKUP COPIES指令檢視目前的配置。
配置在備份全庫時要排除的表空間使用CONFIGURE EXCLUDE FOR TABLESPACE指令可以配置在備份全庫時自動排除的表空間。
即使在配置後,也可以強制将他們包含進來:BACKUP DATABASE NOEXCLUDE;
如果要清除,執行以下指令即可:
CONFIGURE EXCLUDE FOR TABLESPACE TBS_1 CLEAR;
之後在備份全庫時,就會将這些表空間包含進來。
配置 Auxiliary 執行個體資料檔案名: CONFIGURE AUXNAME在使用TSPITR,或通過RMAN複制一個資料庫時,在進行實際的TSPITR或者資料庫複制前,可以需要設定auxiliary執行個體的資料檔案名。如下:
CONFIGURE AUXNAME FOR datafileSpec TO 'filename';
DatafileSpec:原始的檔案名或檔案号;filename:新檔案的路徑。
和其他的設定的清除一樣,CONFIGURE AUXNAME FOR DATAFILE 2 CLEAR;
當運作DUPLICATE時,CONFIGURE AUXNAME是SET NEWNAME指令的一種替代。差別是使用了AUXNAME後,随後執行其他的DUPLICATE指令不需要再次重設檔案名,直到執行了CONFIGURE AUXNAME ... CLEAR。
顯示 Auxiliary 通道的預設配置SHOW AUXNAME;
CONFIGURE AUXNAME FOR DATAFILE '/oracle/oradata/trgt/tools01.dbf' TO '/tmp/tools01.dbf';
設定快照控制檔案位置當RMAN需要從一個讀一緻性的控制檔案版本重新同步時,其将會建立一個快照控制檔案。RMAN僅在于RMAN同步或者制作目前控制檔案的備份時需要快照。預設情況下,$ORACLE_HOME/dbs/[email protected]中,而不是在FRA。
快照控制檔案的預設位置在目前版本建立一個新資料庫:快照使用預設位置,依賴于ORACLE_HOME;
從8.1.7前的版本更新到目前版本:使用存儲在控制檔案中的快照位置;
檢視配置SHOW SNAPSHOT CONTROLFILE NAME;
設定快照控制檔案的位置使用CONFIGURE SNAPSHOT CONTROLFILE NAME TO 'filename'設定快照控制檔案的位置。
如果要更改到其他位置,隻需要重新執行指向新的位置即可。
設定共享伺服器下的 RMAN 使用RMAN不能通過共享伺服器連接配接到伺服器,必須要求專用伺服器。為了確定RMAN在MTS下不會連接配接到排程器,RMAN使用的連接配接字元串必須包含(SERVER=DEDICATED)在CONNECT_DATA中。
如下:
inst1_shs =
(DESCRIPTION=
(ADDRESS=(PROTOCOL=tcp)(HOST=inst1_host)(port1521))
(CONNECT_DATA=(SERVICE_NAME=inst1)(SERVER=shared))
)
inst1是SERVICE_NAMES的一個值;
配置RMAN在MTS下工作如下:
1. 建立一個網絡服務名通過非共享SID連接配接:
inst1_ded =
(DESCRIPTION=
(ADDRESS=(PROTOCOL=tcp)(HOST=inst1_host)(port1521))
(CONNECT_DATA=(SERVICE_NAME=inst1)(SERVER=dedicated))
)
2. 啟動SQL*PLUS測試兩個連接配接字元串:
CONNECT SYS/[email protected]_ded
SELECT SERVER
FROM V$SESSION
WHERE SID = (SELECT DISTINCT SID FROM V$MYSTAT);
CONNECT SYS/[email protected]_shs AS SYSDBA
SELECT SERVER
FROM V$SESSION
WHERE SID = (SELECT DISTINCT SID FROM V$MYSTAT);
3. 使用專用服務名連接配接到伺服器。
關于共享伺服器的具體配置在10g中隻要設定shared_servers大于0即可,如下:
alter system set shared_servers=1;
執行指令lsnrctl services,結果如下:
例程 "test", 狀态 READY, 包含此服務的 1 個處理程式...
處理程式:
"D000" 已建立:0 已被拒絕:0 目前: 1 最大: 1002 狀态: ready
DISPATCHER
(ADDRESS=(PROTOCOL=tcp)(HOST=PD-00167674093A.tcsgegdc.com)(PORT=1579))
然後配置一個TNS服務名,使用1579端口,然後使用該端口配置的TNS服務名連接配接就是共享伺服器。