設(shè)置RMAN的全局變量 在調(diào)用RMAN前,通常設(shè)置NLS_DATE_FORMAT和NLS_LANG環(huán)境變量,,這些環(huán)境變量決定了RMAN中使用的時間參數(shù)的格式,。 NLS_LANG=american NLS_DATE_FORMAT='Mon DD YYYY HH24:MI:SS' 通常設(shè)置為這兩個參數(shù)。如果要使用RMAN連接到未掛載的數(shù)據(jù)庫,,然后在RMAN連接時掛在數(shù)據(jù)庫,,那么設(shè)置NLS_LANG聲明數(shù)據(jù)庫將使用的字符集。 未掛載的數(shù)據(jù)庫假設(shè)為默認字符集,,為US7ASCII,。如果字符集不同于默認字符集,RMAN在數(shù)據(jù)庫掛載后會返回錯誤,。 RMAN下使用命令文件 為了重復執(zhí)行,,可以創(chuàng)建一個包含RMAN命令的文件,然后帶@命令加文件名啟動RMAN客戶端,。 如下: % rman TARGET / @cmdfile1 命令執(zhí)行完成后RMAN將會退出,。 也可以在會話期間執(zhí)行命令文件:RMAN> @cmdfile1 執(zhí)行完成后,,將顯示RMAN> **end-of-file**。 檢查RMAN命令和命令文件的語法:CHECKSYNTAX 以CHECKSYNTAX參數(shù)啟動RMAN將使RMAN僅解析輸入的命令的語法,,而不執(zhí)行,,并在語法出錯時返回RMAN-00558。 % rman CHECKSYNTAX RMAN> run [ backup database; ] RMAN-00571: =========================================================== RMAN-00569: ====== ERROR MESSAGE STACK FOLLOWS =============== RMAN-00571: =========================================================== RMAN-00558: error encountered while parsing input commands RMAN-01006: error signalled during parse RMAN-02001: unrecognized punctuation symbol "[" RMAN> run { backup database; } The command has no syntax errors 檢查命令文件的語法: % rman CHECKSYNTAX @/tmp/goodcmdfile 使用RMAN啟動和關(guān)閉數(shù)據(jù)庫 % rman TARGET / RMAN> SHUTDOWN IMMEDIATE # closes database consistently RMAN> STARTUP MOUNT RMAN> SQL 'ALTER DATABASE OPEN';--只能使用該語法 RMAN中連接使用的數(shù)據(jù)庫類型 ·恢復目錄數(shù)據(jù)庫,; ·auxiliary數(shù)據(jù)庫,,可能是一個standby庫,或執(zhí)行特定任務(wù)的復制數(shù)據(jù)庫,; 數(shù)據(jù)庫連接的認證 連接目標庫或auxiliary庫時,,必須具有SYSDBA權(quán)限。不過連接不要求聲明SYSDBA,,因為所有的RMAN連接都要求SYSDBA權(quán)限,。 如果使用操作系統(tǒng)認證連接,必須設(shè)置環(huán)境變量聲明Oracle SID的值,,如下: % ORACLE_SID=trgt; export ORACLE_SID 連接恢復目錄不要求SYSDBA權(quán)限,,但要求RECOVERY_CATALOG_OWNER角色。 對于自動auxiliary實例,,RMAN確保用戶具有SYSDBA權(quán)限,。 連接目標數(shù)據(jù)庫 % rman TARGET / NOCATALOG % rman TARGET SYS/oracle@trgt NOCATALOG 如果在啟動RMAN后沒有聲明CONNECT CATALOG,RMAN將運行在NOCATALOG模式,,直到第一次運行需要RMAN容器的命令,。如果在NOCATALOG模式下執(zhí)行了需要RMAN恢復目錄的命令,必須重啟RMAN以連接到恢復目錄,。 設(shè)置數(shù)據(jù)庫進行RMAN Backup 持久的配置選項:控制RMAN的行為 使用RMAN SHOW和CONFIGURE分別察看和更改RMAN配置選項,。 顯示當前RMAN配置設(shè)置:SHOW SHOW命令可顯示當前RMAN的一個/多個配置值,以及它們是否為默認值,。如下: RMAN> SHOW RETENTION POLICY; RMAN> SHOW DEFAULT DEVICE TYPE; SHOW ALL命令顯示所有參數(shù)的設(shè)置,。輸出包含默認值和非默認值。 轉(zhuǎn)儲默認值:CONFIGURE... CLEAR 如:RMAN> CONFIGURE RETENTION POLICY CLEAR; 配置備份的默認設(shè)備 默認情況下,,RMAN備份到一個OS具體的磁盤目錄,。也可以配置為到磁帶。在配置磁帶sbt后(見供應商文檔),,即可以使介質(zhì)管理器作為默認設(shè)備: CONFIGURE DEFAULT DEVICE TYPE TO sbt; 也可以使用BACKUP DEVICE TYPE sbt DATABASE;將具體的備份配置到具體的設(shè)備,,使用BACKUP的DEVICE TYPE子句。 為磁盤備份配置默認備份類型 可以配置備份集或者映像拷貝作為默認的備份方式,如下: RMAN> CONFIGURE DEVICE TYPE DISK BACKUP TYPE TO COPY; # image copies RMAN> CONFIGURE DEVICE TYPE DISK BACKUP TYPE TO BACKUPSET; # uncompressed 默認的方式是備份集,,但是對于介質(zhì)管理器沒有類似的選項,,只能是備份集。 配置備份集的壓縮屬性 可以配置RMAN在特定的設(shè)備類型上使用默認使用壓縮備份集CONFIGURE DEVICE TYPE命令的BACKUP TYPE TO COMPRESSED BACKUPSET選項,,如下: RMAN> CONFIGURE DEVICE TYPE DISK BACKUP TYPE TO COMPRESSED BACKUPSET; RMAN> CONFIGURE DEVICE TYPE sbt BACKUP TYPE TO COMPRESSED BACKUPSET; 如要取消,,使用以下命令: RMAN> CONFIGURE DEVICE TYPE DISK BACKUP TYPE TO BACKUPSET; RMAN> CONFIGURE DEVICE TYPE sbt BACKUP TYPE TO BACKUPSET; 配置磁盤設(shè)備和通道 RMAN通道執(zhí)行所有RMAN任務(wù),,默認情況下,RMAN為所有操作配置一個通道,。 CONFIGURE CHANNEL DEVICE TYPE DISK FORMAT '/backup/ora_df%t_s%s_s%p'; 其中%t是時間戳,,%s是備份集號,%p是備份片號,; 也可以配置ASM作為默認的位置: CONFIGURE CHANNEL DEVICE TYPE DISK FORMAT '+dgroup1'; 這樣就可以不配置到默認的FRA,。 配置磁帶設(shè)備和通道 CONFIGURE CHANNEL DEVICE TYPE sbt PARMS='ENV=mml_env_settings'; PARMS的值依賴于供應商文檔。 可以使用CONFIGURE DEVICE TYPE SBT配置并行性,,備份集壓縮等,。設(shè)備類型的這些設(shè)置獨立于設(shè)備的通道配置。 CONFIGURE DEVICE TYPE sbt PARALLELISM 2;--配置兩個通道,; 執(zhí)行該命令后顯示: old RMAN configuration parameters: CONFIGURE DEVICE TYPE 'SBT_TAPE' BACKUP TYPE TO COMPRESSED BACKUPSET PARALLELISM 1; new RMAN configuration parameters: CONFIGURE DEVICE TYPE 'SBT_TAPE' PARALLELISM 2 BACKUP TYPE TO COMPRESSED BACKUPSET; new RMAN configuration parameters are successfully stored 配置控制文件和spfile自動備份 可以配置RMAN在控制文件源數(shù)據(jù)改變和增加備份紀錄時自動備份控制文件和SPFILE,。自動備份允許RMAN在即使丟失當前控制文件,恢復目錄和SPFILE的情況下仍然可以恢復數(shù)據(jù)庫,。這些控制文件使用有意義的名稱,,RMAN不需要恢復目錄就可以查找然后轉(zhuǎn)儲SPFILE。在使用轉(zhuǎn)儲的SPFILE啟動實例后RMAN會從自動備份轉(zhuǎn)儲控制文件,。在掛載控制文件后,RMAN將可用并且RMAN可以轉(zhuǎn)儲數(shù)據(jù)文件并找到歸檔日志,。 CONFIGURE CONTROLFILE AUTOBACKUP ON; 禁用:CONFIGURE CONTROLFILE AUTOBACKUP OFF; 配置控制文件自動備份的格式 默認情況下,,自動備份文件的格式為替代變量%F,被轉(zhuǎn)換為c-IIIIIIIIII-YYYYMMDD-QQ格式,??梢允褂靡韵旅罡淖兡J格式: CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE deviceSpecifier TO 'string'; 'string'中必須包含%F,如下: CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '?/oradata/cf_%F'; 也可以到ASM磁盤組: CONFIGURE CONTROLFILE AUTOBACKUP FOR DEVICE TYPE DISK TO '+dgroup1/%F'; 通過以下命令清除特定配置: CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK CLEAR; 此時控制文件自動備份將到FRA,,如果使用的話,。 覆蓋控制文件自動備份格式 可以在RUN塊中,也可以在RMAN提示符下,。優(yōu)先級如下: 1.SET CONTROLFILE AUTOBACKUP FORMAT(RUN塊中的),; 2.SET CONTROLFILE AUTOBACKUP FORMAT(RMAN提示符下); 3.CONFIGURE CONTROLFILE AUTOBACKUP FORMAT 為RMAN設(shè)置FRA FRA特征允許在磁盤上創(chuàng)建一個目錄使數(shù)據(jù)庫用來創(chuàng)建和管理備份和恢復相關(guān)的文件,。使用FRA簡化了連續(xù)的數(shù)據(jù)庫管理任務(wù),,通過自動命名恢復相關(guān)的文件,并保留所有轉(zhuǎn)儲和恢復相關(guān)的文件足夠長,,刪除不在需要的備份文件,。 將設(shè)置FRA作為實施備份策略的第一個步驟。 選擇FRA的位置 在設(shè)置FRA時,,通常第一步需要設(shè)置保存文件的位置(或者一個ASM磁盤組),。FRA不能存儲在裸文件上,。 同時必須確定FRA的磁盤引用,存儲文件的最大空間,。 FRA的位置應該與數(shù)據(jù)庫文件在不同的磁盤上,,否則磁盤失敗時將丟失備份和數(shù)據(jù)庫。 在RAC下時,,FRA的位置必須是集群文件系統(tǒng),,ASM或通過NFS的共享目錄,并且每個實例中的引用必須相同,。 FRA,,ASM和OMF FRA非常適合于ASM和OMF這兩個數(shù)據(jù)庫特征一起使用。OMF是一種基于初始化參數(shù)自動命名,,定位,,創(chuàng)建,和刪除數(shù)據(jù)庫文件,,控制文件,,重做日志文件等的服務(wù)。其可以簡化許多DBA的任務(wù),。 在ASM下使用OMF不使用FRA是支持的,,但官方不推薦。 可以存儲在FRA中的文件 可以存儲的文件分為持久的和臨時的,。持久的文件只有當前控制文件和在線重做日志的拷貝,,并且這些文件不能被刪除。臨時的文件包括歸檔日志,,數(shù)據(jù)庫文件拷貝,,控制文件拷貝,控制文件自動備份,,備份片,。 計劃FRA的大小 FRA的大小至少應該能夠包括以下文件的大小。 ·所有數(shù)據(jù)文件的拷貝,; ·增量備份,; ·歸檔日志; ·控制文件,; ·控制文件自動備份,; 如果不能提供這么大,最好能有一個區(qū)域足以容納重要的表空間以及全部的歸檔,。不過FRA至少應該能夠包含全部的歸檔日志文件,。 要查看當前的配置,可以查詢V$RECOVERY_FILE_DEST。 估計FRA的幾個因素: ·數(shù)據(jù)庫中改變頻繁的數(shù)據(jù)文件的數(shù)據(jù)塊的數(shù)量,; ·是否僅在磁盤上存儲備份,,或者磁盤+磁帶; ·使用基于冗余的備份保留策略還是基于恢復窗口的保留策略,; ·是否使用Flashback Database和確保轉(zhuǎn)儲點作為時間點恢復的一部分替代,; 為FRA設(shè)置初始化參數(shù)和位置 要啟用FRA,必須設(shè)置兩個初始化參數(shù):DB_RECOVERY_FILE_DEST_SIZE(FRA大?。┖?/span>DB_RECOVERY_FILE_DEST(FRA位置),。 DB_RECOVERY_FILE_DEST_SIZE必須在DB_RECOVERY_FILE_DEST之前設(shè)置。 在RAC下,,所有這些參數(shù)在所有實例下必須相同,。 DB_RECOVERY_FILE_DEST_SIZE 以字節(jié)為單位設(shè)置,不包含某類磁盤負載,。并且如果底層文件系統(tǒng)使用鏡像,,壓縮時,該參數(shù)并不代表實際在磁盤上的大小,。 DB_RECOVERY_FILE_DEST 聲明為ASM磁盤組或者文件系統(tǒng)中的目錄,。 多個數(shù)據(jù)庫之間共享一個FRA 如果以下條件之一滿足,多個數(shù)據(jù)庫可以具有相同的DB_RECOVERY_FILE_DEST: ·沒有兩個數(shù)據(jù)庫具有相同的DB_UNIQUE_NAME,; ·如果沒有提供DB_UNIQUE_NAME,,兩個數(shù)據(jù)庫的DB_NAME也不相同。 使用FRA時的初始化參數(shù)限制 ·不能使用LOG_ARCHIVE_DEST和LOG_ARCHIVE_DUPLEX_DEST初始化參數(shù),,而必須使用LOG_ARCHIVE_DEST_n,; ·LOG_ARCHIVE_DEST_10隱示設(shè)置為USE_DB_RECOVERY_FILE_DEST,如果創(chuàng)建了恢復區(qū)并且沒有設(shè)置其他本地歸檔目的地,; ·Oracle推薦DB_RECOVERY_FILE_DEST與DB_CREATE_FILE_DEST或DB_CREATE_ONLINE_LOG_DEST_n不在相同的目錄; 增加FRA到已存在的數(shù)據(jù)庫 要創(chuàng)建FRA,,只需要設(shè)置必要的參數(shù),,并重啟數(shù)據(jù)庫即可;也可以使用ALTER SYSTEM,。如下: 1.SQL> ALTER SYSTEM SET DB_RECOVERY_FILE_DEST_SIZE = 10G SCOPE=BOTH SID='*'; 2.SQL> ALTER SYSTEM SET DB_RECOVERY_FILE_DEST = '/disk1/flash_recovery_area' SCOPE=BOTH SID='*'; 3.SQL> startup force,; 使用V$RECOVERY_FILE_DEST和V$FLASH_RECOVERY_AREA_USAGE 這兩個視圖可以幫助確定是否在FRA分配了足夠的空間。 禁用FRA 要禁用FRA,,只需要設(shè)置DB_RECOVERY_FILE_DEST為空字符串即可: ALTER SYSTEM SET DB_RECOVERY_FILE_DEST='' SCOPE=BOTH SID="*"; 數(shù)據(jù)庫將不再為文件存儲提供FRA特征,,但是RMAN仍然知道其中的文件,并且可用于轉(zhuǎn)儲和恢復,。 配置備份保留策略 配置基于窗口的保留策略 CONFIGURE命令的RECOVERY WINDOW參數(shù)生命從當前時間開始保留的天數(shù),。如果任何全備或0級增量備份在恢復窗口時間范圍內(nèi),RMAN不會考慮它們?yōu)?/span>obsolete。另外,,RMAN將保留所有恢復到窗口范圍任意點的所有歸檔和一級增量備份,。運行CONFIGURE RETENTION POLICY命令,如下: RMAN> CONFIGURE RETENTION POLICY TO RECOVERY WINDOW OF 7 DAYS; RMAN不會自動刪除恢復窗口范圍內(nèi)obsolete的備份,。而是在REPORT OBSOLETE中報告或V$BACKUP_FILES的OBSOLETE列,。 配置冗余級別的保留策略 CONFIGURE RETENTION POLICY的REDUNDANCY參數(shù)聲明RMAN應該保留的數(shù)據(jù)文件和控制文件拷貝數(shù)量。如果超過了REDUNDANCY的設(shè)置,,RMAN將會認為額外的備份是obsolete的,。 CONFIGURE RETENTION POLICY TO REDUNDANCY 3; 顯示當前的策略 SHOW RETENTION POLICY; 禁用保留策略 如果禁用保留策略,RMAN將不會認為任何備份是obsolete的,。 CONFIGURE RETENTION POLICY TO NONE; 禁用不同與清除,,清除將使保留策略設(shè)置為REDUNDANCY=1。 如果使用FRA,,不應該將數(shù)據(jù)庫運行在保留策略禁用狀態(tài),。 Oracle如何管理FRA中的空間 Oracle不會刪除FRA中合法的文件,除非必須回收一些空間用于其它目的,。如將一些備份移動到了磁帶,,但是文件仍然沒有回收,因此FRA可以看作是磁帶的緩存,。 什么時候文件可以從FRA被合法的刪除 ·持久文件不能夠被合法的刪除,; ·在保留策略下obsolete的文件可被合法刪除; ·臨時文件被移動到磁帶后可被合法刪除,; ·在Data Guard環(huán)境下,,歸檔日志刪除策略決定何時歸檔日志文件能夠被刪除; 安全和可信的刪除文件的方法是更改保留策略,。 當FRA中的空間不可用時 當FRA中的可回收空間小于15%時,,警告日志中間出現(xiàn)一條消息,并在小于3%時將會出現(xiàn)嚴重警告(也會出現(xiàn)在DBA_OUTSTANDING_ALERTS中),,但是數(shù)據(jù)庫將會繼續(xù)消耗FRA直到完全填充滿,。 當完全滿時,將會出現(xiàn)以下錯誤: ORA-19809: limit exceeded for recovery files ORA-19804: cannot reclaim nnnnn bytes disk space from mmmmm limit Nnnnn是要求的空間,,mmmm時FRA的磁盤引用,。 Oracle處理FRA滿的情況和磁盤滿一樣,通常是數(shù)據(jù)庫掛起,,但不全是,。 為磁盤備份配置FRA的例子 ·歸檔日志和RMAN備份存儲在FRA; ·控制文件和在線日志拷貝存儲在FRA外的目錄中,; ·數(shù)據(jù)文件不超過3GB,,歸檔日志不超過4GB。 備份策略基于增量備份,控制文件自動備份到FRA,; FRA為10GB,,足以存儲控制文件自動備份,全數(shù)據(jù)庫0級增量備份,,加上一些1級增量備份,。 實施策略: DB_NAME=sample DB_CREATE_FILE_DEST = '/u02/oradata/wrk_area'—當前數(shù)據(jù)文件所在位置; DB_CREATE_ONLINE_LOG_DEST_1 = '/u03/oradata/wrk_area'—控制文件和在線日志文件位置,; DB_CREATE_ONLINE_LOG_DEST_2 = '/u04/oradata/wrk_area' DB_RECOVERY_FILE_DEST = '/u01/oradata/rcv_area'—FRA地址,; DB_RECOVERY_FILE_DEST_SIZE = 10G—FRA位置; 如果沒有設(shè)置LOG_ARCHIVE_DEST_n,,Oracle僅存儲歸檔日志到FRA,。 一旦數(shù)據(jù)庫啟動,執(zhí)行以下命令配置環(huán)境: RMAN> CONFIGURE RETENTION POLICY TO REDUNDANCY 1; RMAN> CONFIGURE BACKUP OPTIMIZATION ON; RMAN> CONFIGURE CONTROLFILE AUTOBACKUP ON; 創(chuàng)建控制文件在FRA中包含復制文件 假設(shè)創(chuàng)建一個以下類型的數(shù)據(jù)庫: ·控制文件,,數(shù)據(jù)文件,,在線日志存儲為OMF在一個單獨的文件目錄中; ·一個重復的控制文件包含在FRA中,; ·重復的在線日志包含在FRA中,; ·歸檔日志存儲在FRA和其他單獨的文件目錄中; ·RMAN備份直接到FRA中,; 實施方式如下: 1.創(chuàng)建PFILE: DB_NAME=sample DB_CREATE_FILE_DEST = /u01/oradata/wrk_area/--OM文件位置,; LOG_ARCHIVE_DEST_1 = 'LOCATION=/arc_dest1'—設(shè)置歸檔目的地到FS目錄; LOG_ARCHIVE_DEST_2 = 'LOCATION=USE_DB_RECOVERY_FILE_DEST'—設(shè)置歸檔目的地到FRA,; DB_RECOVERY_FILE_DEST = 'LOCATION=/u01/oradata/rcv_area'—設(shè)置控制文件和在線日志拷貝到FRA,; DB_RECOVERY_FILE_DEST_SIZE = 10G DB_CREATE_FILE_DEST設(shè)置所有數(shù)據(jù)文件,在線日志,,控制文件的默認目錄,,其他拷貝的控制文件和在線日志創(chuàng)建在FRA中; 2.創(chuàng)建數(shù)據(jù)庫: SQL> CREATE DATABASE sample; 該語句的作用: ·數(shù)據(jù)文件在DB_CREATE_FILE_DEST中以OMF創(chuàng)建,; ·在線日志組默認創(chuàng)建,;每組兩個成員,分別在DB_CREATE_FILE_DEST和DB_RECOVERY_FILE_DEST中,; ·在DB_CREATE_FILE_DEST中創(chuàng)建一個控制文件,DB_RECOVERY_FILE_DEST中也創(chuàng)建一個控制文件,; ·Oracle使用LOG_ARCHIVE_DEST_1和LOG_ARCHIVE_DEST_2作為歸檔目的地,;因為設(shè)置了本地歸檔目的地,因此LOG_ARCHIVE_DEST_10不會默認設(shè)置為FRA,;FRA中創(chuàng)建的歸檔文件名基于OMF而不是LOG_ARCHIVE_FORMAT聲明的格式,; 3.使用ALTER DATABASE ADD LOGFILE語句創(chuàng)建更多的歸檔組;如果沒有聲明文件,將在DB_CREATE_FILE_DEST和FRA中分別創(chuàng)建一個文件,。如下: ALTER DATABASE ADD LOGFILE; 創(chuàng)建僅在FRA中歸檔的文件 假設(shè)需要創(chuàng)建一個數(shù)據(jù)庫,,其控制文件,在線日志,,數(shù)據(jù)文件以OMF創(chuàng)建在單獨的文件系統(tǒng)目錄中,。另外具有以下特征: ·僅歸檔日志到FRA; ·RMAN備份到FRA,; 實施方式: 1.設(shè)置PFILE: DB_NAME=sample DB_CREATE_FILE_DEST = '/u02/oradata/wrk_area' DB_RECOVERY_FILE_DEST = '/u01/oradata/rcv_area' DB_RECOVERY_FILE_DEST_SIZE = 10G DB_CREATE_ONLINE_LOG_DEST_1 = '/u03/oradata/wrk_area'—在線日志和控制文件的默認目錄,; DB_CREATE_ONLINE_LOG_DEST_2 = '/u04/oradata/wrk_area' DB_CREATE_FILE_DEST設(shè)置默認文件系統(tǒng)目錄;DB_RECOVERY_FILE_DEST設(shè)置歸檔目錄,; 2.創(chuàng)建數(shù)據(jù)庫: CREATE DATABASE sample; 沒有拷貝文件將創(chuàng)建在FRA中,。 3.因為啟用了FRA,并且沒有設(shè)置歸檔目的地為本地,,Oracle自動設(shè)置LOG_ARCHIVE_DEST_10為FRA,。FRA中的文件名給予OMF而不是LOG_ARCHIVE_FORMAT。 4.創(chuàng)建額外的日志組: ALTER DATABASE ADD LOGFILE; 將會在DB_CREATE_ONLINE_LOG_DEST_n中創(chuàng)建在線日志文件,,但是不會在FRA,。 |
|