RMAN 系列(二) ---- RMAN 設置和配置

一. 配置數據庫以ARCHIVELOG 模式運行

 在ORACLE 10g 之前,在將數據庫置入Archivelog 模式後,需要啓動arch進程。 設置參數LOG_ARCHIVE_START true,也可啓動arch進程。在10g以後,不需要使用該方法,當數據庫處於archivelog模式時,Oracle 會自動啓動arch進程。

Arch 進程由LGWR 進程調用,只要一個聯機redo log 被填滿。LGWR 進程就切換到另一個聯機redo 組。 此時如果數據庫處於archivelog 模式,LGWR進程也會通知ARCH,將該進程喚醒並開始工作。ARCH 進程相應LGWR的調用,在ORACLE 數據庫參數LOG_ARCHIVE_DEST_n 定義的位置或者定義的閃回恢復區生成聯機redo log的副本,知道arch 進程完成創建歸檔的重做日誌副本後,Oracle 才能重用這個redo log 文件。

Oracle10g 提供了2種不同的位置來保存歸檔日誌: ArchiveLog 目標目錄和閃回區。

1.1 ArchiveLog 目標目錄

使用LOG_ARCHVEI_DEST_n 參數可以定義10個不同的歸檔日誌目標。這些目錄可以是本地目錄,網絡目錄。

下面對一些參數做相關說明:

(1) LOG_ARCHIVE_STAT_n 參數:該參數爲每個歸檔日誌定義兩種不同的狀態: ENABLE和 DEFER,如果是ENABLE,則該歸檔目錄是有效的,如果是DEFER,就不會在指定的LOG_ARCHIVE_DEST_n 進行歸檔。

(2) LOG_ARCHIVE_FORMAT 參數: Oracle 創建歸檔日誌時,按按參數指定的格式,重命名歸檔日誌。

(3) LOG_ARCHIVE_MIN_SUCCEED_DEST:  允許DBA定義歸檔日誌目標副本的最小數據,這些副本必須成功。這樣Oracle 纔可以重用關聯的redo online log

(4) LOG_ARCHIVE_START: 該參數在10g 中不再使用,用戶自動啓動ARCH 進程。

1.2 閃回恢復區

閃回恢復區(FRA)允許集中存儲所有與恢複相關的文件。 FRA 可以本地使用附加的存儲,Oracle 集羣文件系統(Oracle File system: OCFS)或者 Oracle 10g 中新的自動存儲管理(ASM)特性。FRA 中備份文件類型:歸檔的重做日誌,控制文件,控制文件自動備份。閃回日誌,重做日誌,RMAN 數據文件副本,RMAN 備份和其他相關文件。

FRA 幫助管理全部的磁盤空間分配,並且爲所有與恢複相關餓文件提供集中的存儲區域。FRA 也提供更快速的備份和恢復操作。

FRA 中文件的保留與否由RMAN保存策略決定。 通過執行RMAN config retention policy 命令設置該策略。 如果文件在RMAN保存策略下沒有過時,則不會被刪除。如果歸檔日誌過時,則可以刪除。

FRA在由參數DB_RECOVERY_FILE_DEST 定義的特定位置中創建。 該位置可以是文件系統或者ASM卷。DB_RECOVER_FILE_DEST_SIZE 參數則用來定義FRA的最大尺寸。 這是Oracle 控制的文件空間的限制,而與文件系統自身中的全部可用空間無關。 Oracle 監控FRA中的可用空間,一旦FRA中的空間數據量減少到不安全的程度,Oracle 就會在警報日誌中生成警告(90%已使用時生成一次警告,而在95%已使用時再次生成警告)。同樣,當FRA中空閒空間少於10%時,Oracle 就會刪除處於過時文件列表中的文件。

如果閃回恢復區是唯一歸檔目標,那麼FRA中空間被用完時就會非常麻煩,可能造成數據庫異常終止,所以如果只設置了唯一的歸檔目錄,則應該仔細的監控空間可用性。 簡單的說有以下幾種方法:

(1) 增加DB_RECOVERY_FILE_DEST_SIZE.

(2) RMAN BACKUP recovery area。 將FRA的內容移動到其他位置。

(3) 物理刪除較早的備份,然後用RMAN crosscheck 命令來讓數據庫認可已經刪除的文件。

這類問題處理的方法參考:

Flash Recovery Area空間不足導致數據庫不能打開或hang

http://blog.csdn.net/tianlesoftware/archive/2009/10/15/4668991.aspx

     

和閃回恢復區相關的視圖:

(1) DBA_OUTSTANDING_ALERTS

FRA中添加和刪除文件時,這些事件的記錄被記錄到數據庫警告日誌中。 可以通過該視圖來了解一些FRA一些顯著問題的信息。注意: 空間相關問題產生的時間和警告日誌在該視圖中的時間存在一定程度的延時。 

SQL> select reason from dba_outstanding_alerts;

REASON

-------------------------------------------------------------------------------

db_recovery_file_dest_size 字節 (共 4039114752 字節已使用 100.00%, 尚有 字節可用。

 (2v$recovery_file_dest 

該視圖提供了在數據庫中定義FRA的概念。 提供配置的FRA大小,所使用空間數量,可回收多少空間,以及FRA中文件量。

SQL> select * from v$recovery_file_dest;

NAME                        SPACE_LIMIT SPACE_USED SPACE_RECLAIMABLE NUMBER_OF_FILES

------------------------------------------------- ----------- ---------- -------

D:/app/Administrator/flash_recovery_area     4039114752 4005191680          0              85

如果SPACE_RECLAIMABLE 不爲0. 即表示FRA中有可回收的文件。 如果需要該空間,可以強制日誌切換,它將刪除可回收的任何文件並釋放空間。

SQL> alter system switch logfile;

系統已更改。

(3) v$flash_recovery_area_usage

   該視圖提供了關於佔用FRA空間的文件類型的詳細信息。該視圖對文件類型組合,然後提供每個文件類型所使用的空間百分比,來自該組的總FRA可回收空間百分比,以及來自該組的FRA中文件數量。

SQL> select * from v$flash_recovery_area_usage;

FILE_TYPE          PERCENT_SPACE_USED PERCENT_SPACE_RECLAIMABLE NUMBER_OF_FILES

-------------------- ------------------ ------------------------- --------------

CONTROL FILE                          0                         0            0

REDO LOG                              0                         0            0

ARCHIVED LOG                      99.16                         0           85

BACKUP PIECE                          0                         0            0

IMAGE COPY                            0                         0            0

FLASHBACK LOG                         0                         0           0

FOREIGN ARCHIVED LOG                  0                         0          0

已選擇7行。

包含FRA列的其他視圖

可以在許多10g的視圖中找到 IS_RECOVERY_DEST_FILE視圖,例如:

V$CONTRILFILE,V$LOGIFLE,V$ARCHIVEC_LOG,V$DATAFILE_COPY,V$DATAFILE ,V$BACKUP_PIECE. 

該列是一個布爾值,用來指示文件是否位於FRA中。

另一個列BYTES 可以在V$BACKUP_PIECERC_BACKUP_PIECErman 恢復目錄視圖)中找到,該列以字節爲單位指示備份集片的大小。

其他閃回恢復區特性

Oracle 10g,如果沒有設置OMF 相關的DB_CREATE_ONLINE_LOG_DEST_n 參數,則alter database add logfilealter database add standby logfile 命令創建FRA中的連接重做日誌成員。 Alter database drop logfile alter database rename file命令也支持FRA中的文件。

在數據庫創建期間,Oracle 可以使用FRA存儲數據庫控制文件和聯機重做日誌。 如果定義了OMF 相關參數:DB_CREATE_ONLINE_LOG_DEST_n, 則將在這些位置創建控制文件和重做日誌,但不會在FRA中創建,即使定義了FRA。 如果沒有定義DB_CREATE_ONLINE_LOG_DEST_n,但定義了CREATE_FILE_DEST,則由CREATE_FILE_DEST定義的位置創建控制文件和聯機重做日誌的副本。 最後,如果定義了DB_RECOVERY_FILE_DEST,則在該位置創建控制文件。 如果沒有定義任何這些參數,則在OS 特定的默認位置創建控制文件和聯機重做日誌。

FRA和ASM

RMAN支持使用自動存儲管理(ASM)存儲RMAN備份。ASM是磁盤管理工具,使用該工具,DBA就不再需要管理與給定數據庫關聯的物理文件。 ASM在一定程度上類似於可用於UNIX 中的邏輯卷組。 ASM 使用ASM 磁盤組,該磁盤組是存儲在邏輯單元。 物理磁盤被分配給ASM磁盤組,並且提供ASM 磁盤組整體存儲功能。 ASM 磁盤組可以存在前面分配的文件系統上,或者存儲在RAW磁盤上。 結合OCFS, 集羣的服務器可以共享RAC配置中的ASM 磁盤。 配置ASM並定義各種磁盤組合,就可以分配數據文件,控制文件,聯機重做日誌,以及各種RMAN備份文件給ASM磁盤組。

ASM 提供了大量特性,包括負載均衡,數據冗餘,並且很容易添加和刪除ASM磁盤組中的新磁盤。RMAN 支持ASM磁盤組,但是對於大多數非RAC站點使用ASM 實現並沒有多少價值。 

1.3 是否應該使用FRA

我們認爲隱藏在FRA後面的思想是優秀的,我們也喜歡將備份複製到一些其他的介質,如磁帶,從而可以脫機使用它們以進行災難恢復。

我們喜歡將FRA用於歸檔的重做日誌,但仍喜歡將歸檔重做日誌複製到多個位置(具體說是多個磁盤)。 歸檔的重做日誌對於數據庫恢復至關重要,如果丟失一個歸檔的重做日誌,則在該重做日誌之後的所有其他重做歸檔就會幾乎沒有任何價值。 因爲,我們傾向於使用LOG_ARCHIVE_DEST_n 參數來配置數據庫,而使用FRA 和另一單獨的文件系統來存儲歸檔的重做日誌。

1.4  ARCHIVELOG 模式之間的切換

具體操作參考我的blog

Oracle 歸檔與非歸檔的切換

http://blog.csdn.net/tianlesoftware/archive/2009/10/19/4693470.aspx

二. RMAN 命令行

進入RMAN 有兩種不同方法: 命令行 和 OEM

2.1 通過RMAN 命令行連接

   在OS 提示下簡單的輸入rman 命令就可以啓動RMAN。 一旦啓動了RMAN命令解釋程序,就可以執行任何所需的操作。

RMAN 總是以SYSDBA身份連接目標數據庫,所以連接賬戶必須具有SYSDBA權限。 具體用法參考幫助:

C:/Users/Administrator.DavidDai>rman help

參數       值          說明

-----------------------------------------------------------------------------

target       加引號的字符串  目標數據庫連接字符串

目錄      加引號的字符串  恢復目錄的連接字符串

nocatalog    無           如果已指定則沒有恢復目錄

cmdfile      加引號的字符串  輸入命令文件的名稱

log        加引號的字符串  輸出消息日誌文件的名稱

跟蹤        加引號的字符串  輸出調試信息日誌文件的名稱

append       無           如果已指定日誌將以附加模式打開

debug        可選參數  激活調試

msgno        無           對全部消息顯示 RMAN-nnnn 前綴

send         加引號的字符串  將命令發送到介質管理器

pipe         字符串         管道名稱的構建塊

timeout      整數        等待管道輸入的秒數

checksyntax  無           檢查命令文件中的語法錯誤

-----------------------------------------------------------------------------

單引號和雙引號 (' 或 ") 均可用於加引號的字符串。

除非字符串中有空格否則不用引號。

2.2 使用RMAN connet 命令

如果啓動了RMAN,發現沒有連接到正確的數據庫,或者要連接到一個不同的數據庫(目標數據庫,目錄數據庫,輔助數據庫),可以使用connect 命令來更改RMAN要連接的數據庫。 使用connect target 命令可以連接到一個不同的目標數據庫;使用connect catalog 命令可以連接到不同的恢復目錄,使用connect auxiliary 命令可以連接到一個不同的輔助數據庫。

Connect target sys/pwd@sid

Connect catalog user/pwd@sid

2.3 退出RMAN 客戶端

RMAN 退出命令有2個: quit 和 exit。 

三. RMAN 操作配置數據庫

3.1 設置數據庫用戶

在默認情況下,可以通過SYS賬戶(sysdba)來使用RMAN,該賬戶不需要任何配置。當然,在執行產品備份操作時,sysdba 並不是最佳的賬戶。 建議在使用RMAN執行備份操作之前創建一個用於RMAN 備份的單獨賬戶設置。

C:/Users/Administrator.DavidDai>set ORACLE_SID=mynewccs

C:/Users/Administrator.DavidDai>sqlplus /nolog

SQL*Plus: Release 11.2.0.1.0 Production on 星期一 6月 14 10:11:39 2010

Copyright (c) 1982, 2010, Oracle.  All rights reserved.

SQL> conn / as sysdba

已連接。

SQL> create user rman identified by rman;

用戶已創建。

SQL> grant sysdba to rman;

授權成功。

SQL> host

Microsoft Windows [版本 6.1.7600]

版權所有 (c) 2009 Microsoft Corporation。保留所有權利。

C:/Users/Administrator.DavidDai>rman target rman/rman@mynewccs;

恢復管理器: Release 11.2.0.1.0 - Production on 星期一 6月 14 10:12:45 2010

Copyright (c) 1982, 2009, Oracle and/or its affiliates.  All rights reserved.

連接到目標數據庫: MYNEWCCS (DBID=1108507251)

RMAN>

3.2 設置數據庫安全性

先來看一下本地服務器上連接RMAN 和 通過ORACLE net 連接RMAN 兩者之間的差異。 啓動RMAN時,我們可能登錄到數據庫所在的服務器。 在這種情況下,如果使用特許的OS 用戶賬戶登錄,登錄時用具有sysdba 權限的用戶即可。 根據使用的操作系統,我們可以確定我們的用戶賬戶是否是特許的。 如果使用UNIX,通常會存在一個名爲dbaUNIX 組,它是在創建ORACLE特有的賬戶(通常名爲Oracle)時創建的。 如果在這個Unix組中指定我們的UNIX用戶賬戶,就可以不再執行其他操作而連接到一個目標數據庫。 如果使用Windows 平臺,特許用戶會指定到一個通常名爲ORA_DBANT組。

如果沒有使用特許的賬戶登錄本地服務器,或者從客戶端工作站使用Oracle net來連接目標數據庫(如:user/pwd@sid就需要配置數據庫使用口令文件。 配置口令文件時,先要創建口令文件,然後配置數據庫,使數據庫明確使用這個口令文件。  創建口令文件的2個步驟如下:

   3.2.1 創建口令文件

使用Oracle 使用程序orapwd 可以創建口令文件。 該命令有3個參數:

File:口令文件名
  password: sys 用戶的口令

Entries:爲其他特許的Oracle 用戶賬戶保留的條目數

缺省情況下,win下口令文件的格式是pwdsid.oraunix下的格式是orapwSID(大小寫敏感),

         C:>orapwd file=pwdSID.ORA password=pwd entries=5;

3.2.2 配置數據庫使用口令文件

在默認情況下,Oracle 不會被配置爲使用口令文件(除非使用DBCA創建數據庫)。 是否使用口令文件,是通過oracle提供的一個參數remote_login_passwordfile來控制的,remote_login_passwordfilenonesharedexclusive3個值,

none表示不使用口令文件,停用口令文件驗證,Oracle數據庫不允許遠程SYSDBA/SYSOPER身份登錄

exclusive表示實例獨佔使用口令文件,也就是各自實例使用單獨的口令文件,

shared表示多個實例共享一個口令文件

Oracle數據庫在啓動時,首先查找的是orapw<sid>的口令文件,如果該文件不存在,則開始查找,orapw的口令文件,如果口令文件命名爲orapw,多個數據庫就可以共享.

Alter system set REMOTE_LOGIN_PASSWORDFILE=EXCLUSIVE SCOPE=SPFILE;

SQL> select name,value,issys_modifiable from v$parameter where name='remote_login_passwordfile';

NAME                           VALUE           ISSYS_MOD

------------------------------ --------------- ---------

remote_login_passwordfile      EXCLUSIVE       FALSE

注意: 該參數不是動態修改的,修改後需要重啓數據庫。

也可參考blog:

Oracle OS認證 口令文件 密碼丟失處理

http://blog.csdn.net/tianlesoftware/archive/2009/10/20/4698293.aspx

3.3 設置CONTROL_FILE_RECORD_KEEP_TIME 參數

RMAN 配置數據庫時,我們應當考慮在控制文件中存儲備份記錄的時間。 備份記錄包括完全的數據庫備份記錄,以及指定的數據文件,控制文件,參數文件和歸檔目錄的備份記錄。數據庫參數CONTROL_FILE_RECORD_KEEP_TIME以天爲單位(默認值爲7天),因此在默認情況下,Oracle 會將RMAN備份和恢復記錄保存7天。 可以將該參數設置爲0365之間的任意值。

CONTROL_FILE_RECORD_KEEP_TIME參數會影響一系列的數據庫操作。 首先,產生RMAN備份時,由於與這些備份相關的記錄存儲在控制文件中,所以該參數直接影響數據庫控制文件的大小。 備份記錄將不斷的保存在控制文件中,控制文件將耗盡空間。 這時,Oracle 會擴展控制文件來調整備份記錄所需的存儲空間。 此外,設置爲0時,將禁止擴展控制文件,並且會使得RMAN備份的保存週期不穩定。

我們建議將CONTROL_FILE_RECORD_KEEP_TIME 參數設置爲不小於選中數據庫的備份保存週期,否則就可能在備份介質上有數據庫備份,但是控制文件不存在與備份相關的備份記錄,在這種情況下,將無法恢復這些較早的文件。

SQL> select name,value from v$parameter where name='control_file_record_keep_time';

NAME                           VALUE

------------------------------ -------------------------------------------------

control_file_record_keep_time   7

SQL> alter system set control_file_record_keep_time=20;

系統已更改。

SQL> show parameter control_file_record_keep_time

NAME                                 TYPE        VALUE

------------------------------------ ----------- ------------------------------

control_file_record_keep_time        integer     20

SQL>

3.4 配置RMAN默認設置

RMAN 允許我們執行自動的數據庫備份和恢復。 爲了支持這個功能,我們爲一些參數設置默認值。

3.4.1 configure 命令介紹

RMAN> show all;

使用目標數據庫控制文件替代恢復目錄

db_unique_name 爲 MYNEWCCS 的數據庫的 RMAN 配置參數爲:

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 BACKUP TYPE TO BACKUPSET; # 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 ENCRYPTION FOR DATABASE OFF; # default

CONFIGURE ENCRYPTION ALGORITHM 'AES128'; # default

CONFIGURE COMPRESSION ALGORITHM 'BASIC' AS OF RELEASE 'DEFAULT' OPTIMIZE FOR LOA

D TRUE ; # default

CONFIGURE ARCHIVELOG DELETION POLICY TO NONE; # default

CONFIGURE SNAPSHOT CONTROLFILE NAME TO 'D:/APP/ADMINISTRATOR/PRODUCT/11.2.0/DBHO

ME_1/DATABASE/SNCFMYNEWCCS.ORA'; # default

Show all 命令顯示了默認的配置。 我們也可以使用查看v$rman_configuration 視圖,它列出了非默認的RMAN 配額。

更多內容參考blog

Oracle Rman 命令詳解(List report backup configure)

http://blog.csdn.net/tianlesoftware/archive/2009/12/13/4976998.aspx

 3.4.2 配置多種RMAN 配置

     我們可以採用不同的方法來配置通道: 使用configure channel device type 命令可以配置用於所有通道的默認值;使用configure channel n device type 命令可以配置用於指定默認通道的默認值。

使用configure channel device type clear 命令可以清楚用於所有通道的默認值,使用configure channel n device type clear命令可以清除用於指定默認通道的默認值。

使用allocate channel 命令分配一個通道時,可以爲分配的這個通道指定名稱。 如: allocate channel d1 device type disk 命令可以創建一個名爲d1的通道。 自動分配通道時,ORACLE 會爲這些通道指定名稱,他們的默認名稱取決於默認設備類型。 磁盤設備,默認名:ORA_DISK_n; 磁帶設備: 默認名:ORA_SBT_TAPE_n

自動分配通道數取決於所定義的默認並行級別。 執行configure 命令時,Oracle 顯示前面的配置設置,後面跟上新的配置設置。

3.4.3 configure 命令的一些示例:

配置通道默認設置

Configure default device type to sbt;

Configure default device type to disk;

當配置默認的設備類型時,Oracle 將使用默認的通道,直到使用backup device type參數重寫默認值,也將自動分配用於delete 命令的維護通道和用於複製操作的輔助通道。

一旦配置了默認的設備類型,就可以配置特定備份類型的默認值,當使用備份時,應該進行這種備份。 例如,當備份到磁盤時,可以讓Oracle 默認地使用標準的oracle 備份集方法備份數據庫,或者讓其默認爲使用副本,或者默認爲壓縮備份集,並表明並行程度(這表示將分配給備份的通道數)。 相關實例如下:

 Configure device type disk backup type to backupset;

 Configure device type disk backup type to compressed backupset;

 Configure device type disk backup type to copy;

 Configure device type disk parallelism 2;

 壓縮 是Oracle 10g 裏的新特性。 壓縮提供了Oracle 備份的真正壓縮,而不同於ZIP 壓縮,它可以有效的減小備份集的大小。 當然,壓縮佔用資源並且需要更長的時間來完成備份和恢復。  

在看一個自動備份和恢復操作期間分配的通道數示例,示例中,分配磁盤操作的並行級別爲2,因此,如果啓動自動備份操作,就會分配兩個通道來並行執行備份操作。

Configure channel 1 device type disk format 'd:/backup/orcl/backup_%U';

Configure channel 2 device type disk format 'e:/backup/orcl/backup_%U';

注意: 通常在設置默認的並行級別時,應當設置爲連接備份數據庫的磁盤數或者磁帶驅動器數。

  在配置通道時有一些可用選項。 使用maxpiecesize 參數,可以控制備份集片的大小,用maxopenfile,可以控制RMAN 一次最多可以打開的文件數。 Rate 參數用於限制RMAN 並控制備份時讀取字節的比率爲每秒nBnKBnMBnGB

   如:configure channcel 1 device type disk maxpiecesize 100m maxopenfile 8 rate 100MB;

  

注意: 不要混淆 maxpiecesize 參數 和 maxsetsize 參數之間的區別。 Maxpiecesize 限定單個備份集片的大小並且對備份的整體大小沒有影響。 Maxsetsize 參數限制備份的整體大小,因此需要謹慎使用。 

 

如果是限定所有通道,可以執行如下命令:

 Configure channel device type disk maxpiecesize 100m.

爲什麼需要更改一個備份集片的最大尺寸呢? 首先是某些指定文件大小存在限制,比如磁帶只能處理一定量的數據,而某些磁盤文件系統對給定的數據文件的大小有一些限制。

將一個磁帶設備設置爲所有通道的默認設備,並且指定一些參數的設置。 相關設置如下:

Configure channel devicetype雙胞胎maxpiecesize100m parms 'ENV=(NB_ORA_CLASS=RMAN_RS100_TAPE)';

配置整個備份集的默認最大尺寸

Configure maxsetsize to 7500k;

將備份集的最大尺寸設爲默認值,即沒有限制

Configure maxsetsize clear;

注意: 使用maxsetsize 來限制創建的整個備份的大小時需要特別小心。 這是因爲數據庫在初始化階段可能小於定義的maxsetsize值,但數據庫很快就會超過maxsetsize 值,這樣就會導致數據庫備份操作失敗。

使用configure 命令時,需要清楚給定的配置,這樣才能使用默認值。  如:

Configure channel 1 device type disk clear;

可以將備份進程配置爲創建雙路備份(duplexed backup),也就是說在不同的位置創建同一個備份的多個副本。還可以使用configure 命令來配置數據庫的默認設置,以使configure 命令執行雙路的自動備份操作:

Configure datafile backup copies for device type disk to 2;

快照控制文件,該文件是RMAN 備份期間數據庫控制文件的時間點副本,這樣可以保證備份與給定時間點一致。 因此,如果在啓動備份操作後在數據庫中添加一個表空間或者數據文件, 這個表空間或數據文件就不會包含在備份中。 如果我們希望在默認位置外的位置創建備份控制文件,就可以使用configure 命令來定義這個新位置:

Configure snapshot control file name to 'd:/backup/snapshotSID';

注意: 既是配置了FRAOracle 也不會在FRA中創建控制文件。

在自動備份期間,我們可以將指定的表空間排除在備份之外,也可以使用configure 命令來實現這一功能:

Configure exclude for tablespace old_data;

Configure 命令允許我們啓用和禁止備份優化,啓用備份優化時,會使ORACLE 跳過在備份設備上已有的相同備份的文件的備份。 

Configure backup optimization on;

注意:要執行優化操作,就必須啓動備份優化。此外,我們也必須執行 backup database命令或者backup archivelog命令或與like/all 選項連用,或backup backupset all。 最後,還可以使用backup 命令的force 參數來禁止備份優化。

3.4.4 使用格式串

先看例子:Configure channel 1 device type disk format 'd:/backup/orcl/backup_%U';

configure 命令中經常使用格式串,在backup,resotre,allocate channel 等其他RMAN 命令中也會經常看到格式串。RMAN 提供了與格式串關聯的一些語法元素。 這些元素稱: 佔位符, rman 將使用相應的定義值來替換他們。 例如示例中的 %U 語法元素告訴RMAN要使用系統生成的唯一表示符替換文件名。 

使用FORMAT參數時可使用的各種替換變量,如下(注意大小寫)所示:

%aOracle數據庫的activation IDRESETLOG_ID

%c:備份片段的複製數(從1開始編號,最大不超過256)。

%dOracle數據庫名稱。

%D:當前時間中的日,格式爲DD

%e:歸檔序號。

%f:絕對文件編號。

%F:基於"DBID+時間"確定的唯一名稱,格式的形式爲c-IIIIIIIIII-YYYYMMDD-QQ,其中IIIIIIIIII 爲該數據庫的DBIDYYYYMMDD爲日期,QQ是一個1256的序列。

%h:歸檔日誌線程號。

%IOracle數據庫的DBID

%M:當前時間中的月,格式爲MM

%N:表空間名稱。

%n:數據庫名稱,並且會在右側用x字符進行填充,使其保持長度爲8。比如數據庫名JSSBOOK,則生成的名稱則是JSSBOOKx

%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爲備份片段命名。

 

3.4.5 配置控制文件和數據庫參數文件的自動備份

Oracle 10g 版本中的RMAN 提供了備份控制文件和數據庫參數文件的功能。我們可以配置默認執行這些備份操作。

示例:

Configure controlfile autobackup on;

Configure controlfile autobackup off;

配置控制文件和參數文件的自動備份時的一些規則:

(1) RUN 程序塊之外執行每個RMANbackup 或者 copy 命令時,都會自動備份控制文件和參數文件。

(2) 使用使用了RUN 程序塊,而且該程序塊的最後一個命令不是backup 或者copy,在RUN 程序塊結尾處會備份控制文件和參數文件。

除了上面2種自動控制文件備份類型,我們還可以配置另一種特殊的控制文件備份類型。該類型發生在數據庫變化時,這些變化包括添加新的表空間,添加數據文件,添加聯機重做日誌等。 這些自動備份類型只在磁盤上發生,使用configure controlfile autobackup命令的特殊選項可以簡化備份。如:

Configure controlfile autobackup format for device type disk to 'd:/backup/sid_%F';

使用了該選項,RDBMS 會在數據結構的變化控制文件產生影響時自動備份控制文件。強調一點,只支持磁盤。

3.4.6 備份默認的保存策略:

RMAN 允許用戶使用configure retention policy 命令來配置保存粗略。 配置保存粗略不會導致自動刪除備份,需要使用delete obsolete 命令才能刪除過期的備份集。 在report obsolete 命令時顯示到期的備份集。 如果列出的某個文件不能被刪除,需要魚腥crosscheck 命令,否則,Oracle 刪除delete obsolete命令輸出的所有項。

如:

configure retention policy to recovery window of 7 days;

--recover window是保持所有足夠的備份,可以將數據庫系統恢復到最近七天內的任意時刻。任何超過最近七天的數據庫備份將被標記爲obsolete

configure retention policy to redundancy 5;

--redundancy 是爲了保持可以恢復的最新的5份數據庫備份,任何超過最新5份的備份都將被標記爲redundancy。它的默認值是1份。

configure retention policy clear;

-- 保存策略重置爲默認值(冗餘爲1

CONFIGURE RETENTION POLICY TO NONE;

-- 不應用任何保存策略。

注意: 如果使用磁帶管理系統,該系統會具有自己的保存策略。如果磁帶管理系統的保存策略與RMAN中定義的備份保存策略衝突,則磁帶管理系統的保存策略優先,同時,恢復備份的能力會大受影響。

3.4.7 配置默認的加密級別

Oracle 10g R2以後的版本中,RMAN 可以創建加密備份,在備份期間,Oracle 在創建備份集時對其進行加密。當還原備份時,則對其進行解密。

Oracle 提供了3種不同的機密模式:

(1) 透明模式: 透明模式的加密不需要DBA 干涉,爲了使用該模式,必須配置Oracle 加密電子皮夾(Encryption Wallet.

(2) 口令模式:口令模式加密需要在創建將要加密的備份或還原(在創建時)加密的備份時提供口令。 在RMAN備份腳本中使用命令: set encryption on identified by password only 提供口令。

(3) 雙重模式:可以通過口令或Oracle 加密電子皮夾來還原雙重模式的備份。 因爲不需要安裝Oracle 加密電子皮夾,雙重模式簡化了備份的離站還原。可以使用: set encryption on identifiedby password 命令(注意,少了only) 創建雙重模式加密備份。

使用configure 命令配置各種與RMAN備份加密相關的持久性設置。可以使用RMANconfigure 命令來設置以下相關內容:

(1) 是否應該加密所有的數據庫文件

(2) 是否應該加密特定的表空間

(3) 應該使用那種可用的機密算法來機密備份

如果正在使用基於Oracle 加密電子皮夾的安全保護,則只需要設置configure 命令所需的持久性RMAN 設置。 如果希望使用口令模式加密或雙重模式加密,就需要使用configure 命令配置持久性安全默認值,然後啓動備份時使用set 命令設置備份口令,則在每次RMAN備份或者恢復會話期間必須輸入該口令。

下面的示例中,爲整個數據庫配置並啓用備份加密。 注意,如果沒有配置Oracle 加密電子皮夾,隨後的任何備份都將會失敗,除非使用set 命令建立會話的加密口令。 

RMAN> configure encryption for database on;

新的 RMAN 配置參數:

CONFIGURE ENCRYPTION FOR DATABASE ON;

已成功存儲新的 RMAN 配置參數

RMAN> set encryption on identified by admin only;

正在執行命令: SET encryption

RMAN> backup database plus archivelog;

如果滿足下列條件,則使用加密備份歸檔的重做日誌備份:

(1) 在進行歸檔重做日誌的備份時執行set encryption on 命令。

(2) 已經爲整個數據庫配置了加密,或者至少爲數據庫的一個表空間配置了加密。

3.4.8 配置歸檔日誌刪除策略。

可以配置RMAN來管理歸檔重做日誌的刪除策略。默認情況下,Oracle 將配置的備份保存策略應用於歸檔的重做日誌。 然而,如果正在使用FRA和備用數據庫,就可以配置RMAN, 在使用configure archivelog deletion policy to applied on standby 命令,將歸檔的重做日誌應用與強制的備用數據庫後將其標記爲可刪除。 在這種情況下,一旦已經成功將歸檔的重做日誌應用於強制的備用數據庫位置,Oracle 就可以將其從FRA 中刪除。

3.5 使用共享服務器的情況

如果使用Oracle 的共享服務器選項(10g以前稱爲MTS,或者 多線程服務器),就必須配置一個RMAN使用的專用服務器,這是因爲RMAN不能使用共享服務器會話連接到數據庫

如果共享的,就必須通過Net Manager 工具配置一個專用的:

MYICD =

  (DESCRIPTION =

    (ADDRESS = (PROTOCOL = TCP)(HOST = DavidDai)(PORT = 1521))

    (CONNECT_DATA =

      (SERVER = DEDICATED)

      (SERVICE_NAME = myicd)

    )

  )

四. 恢復目錄

Oracle 在RMAN存儲庫中維護與RMAN操作相關的所有元數據。RMAN存儲庫總是被存儲在目標數據庫的控制文件中,我們可以用另一個位置存儲數據的RMAN存儲庫。 這就是RMAN恢復目錄。 

在大多數操作中,RMAN 都不要恢復目錄,因此在許多情況下,恢復目錄實際上是一個可選的組件。 因爲恢復目錄在很大程度上可選,所以RMAN的默認配置中沒有恢復目錄。 

4.1 恢復目錄的定義

恢復目錄是RMAN的一個可選組件,它存儲來自RMAN備份的歷史備份信息。 與數據庫控制文件的RMAN信息不同,恢復目錄數據不是定期的進行清楚,因此恢復目錄會保存比控制文件更多的歷史信息。 使用恢復目錄比只使用數據庫控制文件有更多的優點,這些優點包括:

(1) 如果要使用存儲的RMAN腳本,就必須使用恢復目錄

(2) 恢復目錄提供存儲全企業RMAN信息的單一存儲庫,它可以更方便,靈活地集中存儲企業的備份信息

(3) 由於可以在當前時間之外的時間報告目標數據庫的信息,所以恢復目錄使得報告起來更有靈活性。

(4) 使用恢復目錄可以保留某些默認的數據庫RMAN 通道配置信息。

如果你是RMAN 老手,就會注意到這裏缺少一些優點:

(1)Oracle 10g可以很容易的在沒有恢復目錄的情況下通過resetlogs 支持恢復

(2)如果使用控制文件自動備份,則不在需要將恢復目錄用於控制文件恢復。

注意:如果不會使用恢復目錄,則保存對數據庫DBID的記錄。 雖然這不是必須的內容,但是數據庫的DBID很有用,而且使用DBID可以簡化恢復操作。

C:/Users/Administrator.DavidDai>rman target /

恢復管理器: Release 11.2.0.1.0 - Production on 星期三 6月 16 19:48:48 2010

Copyright (c) 1982, 2009, Oracle and/or its affiliates.  All rights reserved.

連接到目標數據庫MYNEWCCS (DBID=1108507251)

SQL> select dbid from v$database;

DBID

----------

1108507251

是否應該使用恢復目錄? 

如果只有很少的一些數據庫,則恢復目錄就可能不值得話費額外的時間和精力在它上面。 如果有許多數據庫,則應該考慮使用恢復目錄。 一般來說,恢復目錄帶來的靈活性和集中的全企業報告優點在價值上超過了它所增加的維護和管理成本。 然而,使用恢復目錄的一個缺點在於,如果目錄數據庫關閉,則所有備份都會失敗,除非已經編碼的腳本,從而在使用恢復目錄的第一個備份失敗時,執行沒有恢復目錄的備份。

此外,恢復目錄是數據保護備份環境和分割鏡像(split mirror)備份的基礎部分。 在這些配置中,當備份來自於備份主機的數據庫時,可以認爲恢復目錄是最近的信息,因此它是該策略的核心內容,若維護不當則成爲失敗的導火索。記住,底線是看環境是否需要恢復目錄。

連接RMAN時,必須使用catalog 命令行參數來表明將要建立RMAN與恢復目錄的連接。在默認情況下,RMAN使用nocatalog 選項,該選項表明不使用恢復目錄。使用catalog 參數後,需要指明包含恢復目錄對象的恢復目錄模式的用戶ID 和口令。

如: rman target 'sys/pwd as sysdba@sid' catalog 'user/pwd@SID2';

4.2 創建恢復目錄

4.2.1 配置恢復目錄數據庫

恢復目錄數據庫應該儘可能存在於敦力的數據庫上。 然後,根據我們的經驗,許多站點使用活動數據庫作爲恢復目錄數據庫,只要在備份數據庫時採取預防措施,這也是可行的。每個註冊的數據庫可以分配20M左右的表空間。

SQL> create tablespace rman_ts datafile 'D:/APP/ADMINISTRATOR/ORADATA/MYNEWCCS/rmants.dbf'  size 20M;

表空間已創建。

4.2.2 創建恢復目錄用戶

  恢復目錄用戶需要connect,resource,recovery_catalog_owner 權限。

SQL> Create user rcat_dave identified by rcat_dave default tablespace rman_ts;

用戶已創建。

SQL> Grant connect,resource,recovery_catalog_owner to rcat_dave;

授權成功。

4.2.3 創建恢復目錄模式對象

創建恢復目錄在Oracle 10g中是一個簡單的過程,該過程僅需要使用RMAN。 啓動RMAN時,使用target 參數連接目標數據庫再使用catalog參數連接恢復目錄數據庫模式。 最後在RMAN 提示符下執行 create catalog命令即可。

C:/Users/Administrator.DavidDai>rman target 'sys/admin as sysdba@mynewccs' catalog 'rcat_dave/rcat_dave@mynewccs';

恢復管理器: Release 11.2.0.1.0 - Production on 星期三 6月 16 21:34:56 2010

Copyright (c) 1982, 2009, Oracle and/or its affiliates.  All rights reserved.

連接到目標數據庫MYNEWCCS (DBID=1108507251)

連接到恢復目錄數據庫

RMAN> create catalog tablespace rman_ts; -- rman_ts 是第一步創建的

恢復目錄已創建

RMAN>

4.2.4 在恢復目錄中註冊數據庫

使用恢復目錄執行數據庫的RMAN備份操作前必須註冊數據庫。方法如下:

RMAN> register database;

註冊在恢復目錄中的數據庫

正在啓動全部恢復目錄的 resync

完成全部 resync

report schema 命令驗證是否註冊成功:

RMAN> report schema;

4.2.5 刪除恢復目錄

使用drop_catalog 命令可刪除恢復目錄模式,不過這樣也會使包含在模式中的所有信息都會丟失。因此在刪除之前要考慮做好備份。

RMAN> drop catalog;

恢復目錄所有者是RCAT_DAVE

再輸入一次 DROP CATALOG 命令來確認目錄刪除

RMAN> drop catalog;

恢復目錄已刪除

RMAN>

4.2.6 在恢復目錄中添加RMAN 備份

如果已經在沒有恢復目錄的情況下執行了RMAN備份,並且希望在後面將這些備份添加到恢復目錄,則可以使用catalog命令。可以將數據文件副本,備份集片,歸檔日誌備份,甚至整個備份目錄添加到目錄中。 示例如下:

RMAN>catalog datafilecopy 'D:/APP/ADMINISTRATOR/ORADATA/MYNEWCCS/system01.dbf';

RMAN>catalog archivelog 'D:/APP/ADMINISTRATOR/ORADATA/MYNEWCCS/arch_20.arc';

RMAN>catalog backuppiece 'D:/APP/ADMINISTRATOR/ORADATA/MYNEWCCS/backup_031.bkp';

RMAN>catalog start with 'D:/APP/ADMINISTRATOR/ORADATA/MYNEWCCS/';

注意: 要謹慎使用catalog start with 命令,必須在目錄路徑結尾加上反斜槓後綴,如果不加將遍歷目錄下的所有組合如:D:/APP/ADMINISTRATOR/ORADATA/MYNEWCCS-OLD .

4.2.7 在恢復目錄中取消數據庫註冊

可以在RMAN 中使用unregister database 命令來取消數據庫註冊。如果希望取消已經存在的數據庫註冊,只要連接到數據庫和恢復目錄,並執行unregister database命令即可。

RMAN> unregister database;

如果已經刪除數據庫,並且希望從恢復目錄中刪除該數據庫,則在大多數情況下只需要知道希望取消註冊數據庫的名稱。 

RMAN> unregister database mynewccs;

當恢復目錄中有多個相同名稱註冊的數據庫時,就需要知道需要取消註冊的數據庫的DBID。然後在run 代碼塊中運行unregister database,同時使用set dbid 命令。

RMAN> run

 {

 set dbid 1108507251;

 unregister database mynewccs noprompt;

}

 

 

注: 整理自《Oracle 10g RMAN 備份與恢復》

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章