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%, 尚有 0 位元組可用。
(2)v$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_PIECE和RC_BACKUP_PIECE(rman 恢復目錄檢視)中找到,該列以位元組為單位指示備份集片的大小。
其他閃回恢復區特性
在Oracle 10g,如果沒有設定OMF 相關的DB_CREATE_ONLINE_LOG_DEST_n 引數,則alter database add logfile和alter 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,通常會存在一個名為dba的UNIX 組,它是在建立ORACLE特有的賬戶(通常名為Oracle)時建立的。 如果在這個Unix組中指定我們的UNIX使用者賬戶,就可以不再執行其他操作而連線到一個目標資料庫。 如果使用Windows 平臺,特許使用者會指定到一個通常名為ORA_DBA的NT組。
如果沒有使用特許的賬戶登入本地伺服器,或者從客戶端工作站使用Oracle net來連線目標資料庫(如:user/pwd@sid). 就需要配置資料庫使用口令檔案。 配置口令檔案時,先要建立口令檔案,然後配置資料庫,使資料庫明確使用這個口令檔案。 建立口令檔案的2個步驟如下:
3.2.1 建立口令檔案
使用Oracle 使用程式orapwd 可以建立口令檔案。 該命令有3個引數:
File:口令檔名
password: sys 使用者的口令
Entries:為其他特許的Oracle 使用者賬戶保留的條目數
預設情況下,win下口令檔案的格式是pwdsid.ora,unix下的格式是orapwSID(大小寫敏感),
C:>orapwd file=pwdSID.ORA password=pwd entries=5;
3.2.2 配置資料庫使用口令檔案
在預設情況下,Oracle 不會被配置為使用口令檔案(除非使用DBCA建立資料庫)。 是否使用口令檔案,是透過oracle提供的一個引數remote_login_passwordfile來控制的,remote_login_passwordfile有none,shared,exclusive3個值,
none表示不使用口令檔案,停用口令檔案驗證,Oracle資料庫不允許遠端SYSDBA/SYSOPER身份登入
exclusive表示例項獨佔使用口令檔案,也就是各自例項使用單獨的口令檔案,
shared表示多個例項共享一個口令檔案.
Oracle資料庫在啟動時,首先查詢的是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天。 可以將該引數設定為0到365之間的任意值。
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 並控制備份時讀取位元組的比率為每秒nB,nKB,nMB和nGB。
如: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';
注意: 既是配置了FRA,Oracle 也不會在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引數時可使用的各種替換變數,如下(注意大小寫)所示:
%a:Oracle資料庫的activation ID即RESETLOG_ID。
%c:備份片段的複製數(從1開始編號,最大不超過256)。
%d:Oracle資料庫名稱。
%D:當前時間中的日,格式為DD。
%e:歸檔序號。
%f:絕對檔案編號。
%F:基於"DBID+時間"確定的唯一名稱,格式的形式為c-IIIIIIIIII-YYYYMMDD-QQ,其中IIIIIIIIII 為該資料庫的DBID,YYYYMMDD為日期,QQ是一個1~256的序列。
%h:歸檔日誌執行緒號。
%I:Oracle資料庫的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 程式塊之外執行每個RMAN的backup 或者 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 備份與恢復》
----------------------------------------------------------
轉載於-->>http://blog.csdn.net/tianlesoftware/article/details/5674309
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29119536/viewspace-1132149/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- RMAN-06207和RMAN-06208的處理
- RMAN之環境配置(一)
- 【RMAN】RMAN備份至ASMASM
- Oracle 11G RAC複製備庫RMAN-03002 RMAN-05501 RMAN-03015 RMAN-03009 RMAN-10038Oracle
- 【RMAN】RMAN的備份保留策略
- ORACLE rman與RMAN-00054&ORA-09945Oracle
- RMAN(轉)
- 【RMAN】Oracle rman 常用命令參考Oracle
- RMAN恢復之RMAN-06555處理
- RMAN之客戶端互動(二)客戶端
- Oracle 12c系列(八)|RMAN (FROM SERVICE)Oracle
- [20211020]改變備庫的rman配置.txt
- 【RMAN】在備庫執行rman備份時報錯RMAN-06820 ORA-17629
- rman oracle11g_單機實用配置Oracle
- RMAN增量恢復
- RMAN備份概述
- oracle手工建庫後rman無法啟用(RMAN-04015)Oracle
- RMAN之環境配置(二)---Backups to a Media Manager備份到介質管理器
- 【RMAN】什麼是Fast Recovery Area(FRA),如何配置FRAAST
- RMAN備份恢復典型案例——RMAN備份&系統變慢
- 【RMAN】Oracle11g透過rman升級到12cOracle
- RMAN備份進度
- rman 備份指令碼指令碼
- RMAN中的通道分配
- RMAN的備份原理
- RMAN修復壞塊
- RMAN-06214: Datafile Copy
- [20191122]RMAN-03999.txt
- RMAN Duplicate RAC to Single Instance
- RMAN恢復實踐
- 資料遷移的時候出現RMAN-03002,RMAN-06026
- 【RMAN】Oracle12c以後rman 備份恢復命令參考Oracle
- 【RMAN】在多租戶環境下的RMAN備份及恢復
- 12 使用RMAN備份和恢復檔案
- RMAN備份的最佳化和調整
- rman 增量備份恢復
- RMAN命令LIST操作總結
- Oracle RMAN恢復測試Oracle
- Oracle RMAN備份實戰Oracle