RMAN 系列(二) ---- RMAN 設置和配置 收藏
一. 配置數據庫以ARCHIVELOG 模式運行
在ORACLE 10g 之前,在將數據庫置入Archivelog 模式后,需要啟動(dòng)arch進(jìn)程。 設置參數LOG_ARCHIVE_START 為true,也可啟動(dòng)arch進(jìn)程。在10g以后,不需要使用該方法,當數據庫處于archivelog模式時(shí),Oracle 會(huì )自動(dòng)啟動(dòng)arch進(jìn)程。
Arch 進(jìn)程由LGWR 進(jìn)程調用,只要一個(gè)聯(lián)機redo log 被填滿(mǎn)。LGWR 進(jìn)程就切換到另一個(gè)聯(lián)機redo 組。 此時(shí)如果數據庫處于archivelog 模式,LGWR進(jìn)程也會(huì )通知ARCH,將該進(jìn)程喚醒并開(kāi)始工作。ARCH 進(jìn)程相應LGWR的調用,在ORACLE 數據庫參數LOG_ARCHIVE_DEST_n 定義的位置或者定義的閃回恢復區生成聯(lián)機redo log的副本,知道arch 進(jìn)程完成創(chuàng )建歸檔的重做日志副本后,Oracle 才能重用這個(gè)redo log 文件。
Oracle10g 提供了2種不同的位置來(lái)保存歸檔日志: ArchiveLog 目標目錄和閃回區。
1.1 ArchiveLog 目標目錄
使用LOG_ARCHVEI_DEST_n 參數可以定義10個(gè)不同的歸檔日志目標。這些目錄可以是本地目錄,網(wǎng)絡(luò )目錄。
下面對一些參數做相關(guān)說(shuō)明:
(1) LOG_ARCHIVE_STAT_n 參數:該參數為每個(gè)歸檔日志定義兩種不同的狀態(tài): ENABLE和 DEFER,如果是ENABLE,則該歸檔目錄是有效的,如果是DEFER,就不會(huì )在指定的LOG_ARCHIVE_DEST_n 進(jìn)行歸檔。
(2) LOG_ARCHIVE_FORMAT 參數: Oracle 創(chuàng )建歸檔日志時(shí),按按參數指定的格式,重命名歸檔日志。
(3) LOG_ARCHIVE_MIN_SUCCEED_DEST: 允許DBA定義歸檔日志目標副本的最小數據,這些副本必須成功。這樣Oracle 才可以重用關(guān)聯(lián)的redo online log。
(4) LOG_ARCHIVE_START: 該參數在10g 中不再使用,用戶(hù)自動(dòng)啟動(dòng)ARCH 進(jìn)程。
1.2 閃回恢復區
閃回恢復區(FRA)允許集中存儲所有與恢復相關(guān)的文件。 FRA 可以本地使用附加的存儲,Oracle 集群文件系統(Oracle File system: OCFS)或者 Oracle 10g 中新的自動(dòng)存儲管理(ASM)特性。FRA 中備份文件類(lèi)型:歸檔的重做日志,控制文件,控制文件自動(dòng)備份。閃回日志,重做日志,RMAN 數據文件副本,RMAN 備份和其他相關(guān)文件。
FRA 幫助管理全部的磁盤(pán)空間分配,并且為所有與恢復相關(guān)餓文件提供集中的存儲區域。FRA 也提供更快速的備份和恢復操作。
FRA 中文件的保留與否由RMAN保存策略決定。 通過(guò)執行RMAN config retention policy 命令設置該策略。 如果文件在RMAN保存策略下沒(méi)有過(guò)時(shí),則不會(huì )被刪除。如果歸檔日志過(guò)時(shí),則可以刪除。
FRA在由參數DB_RECOVERY_FILE_DEST 定義的特定位置中創(chuàng )建。 該位置可以是文件系統或者ASM卷。DB_RECOVER_FILE_DEST_SIZE 參數則用來(lái)定義FRA的最大尺寸。 這是Oracle 控制的文件空間的限制,而與文件系統自身中的全部可用空間無(wú)關(guān)。 Oracle 監控FRA中的可用空間,一旦FRA中的空間數據量減少到不安全的程度,Oracle 就會(huì )在警報日志中生成警告(90%已使用時(shí)生成一次警告,而在95%已使用時(shí)再次生成警告)。同樣,當FRA中空閑空間少于10%時(shí),Oracle 就會(huì )刪除處于過(guò)時(shí)文件列表中的文件。
如果閃回恢復區是唯一歸檔目標,那么FRA中空間被用完時(shí)就會(huì )非常麻煩,可能造成數據庫異常終止,所以如果只設置了唯一的歸檔目錄,則應該仔細的監控空間可用性。 簡(jiǎn)單的說(shuō)有以下幾種方法:
(1) 增加DB_RECOVERY_FILE_DEST_SIZE.
(2) 用RMAN BACKUP recovery area。 將FRA的內容移動(dòng)到其他位置。
(3) 物理刪除較早的備份,然后用RMAN crosscheck 命令來(lái)讓數據庫認可已經(jīng)刪除的文件。
這類(lèi)問(wèn)題處理的方法參考:
Flash Recovery Area空間不足導致數據庫不能打開(kāi)或hang住
和閃回恢復區相關(guān)的視圖:
(1) DBA_OUTSTANDING_ALERTS
在FRA中添加和刪除文件時(shí),這些事件的記錄被記錄到數據庫警告日志中。 可以通過(guò)該視圖來(lái)了解一些FRA一些顯著(zhù)問(wèn)題的信息。注意: 空間相關(guān)問(wèn)題產(chǎn)生的時(shí)間和警告日志在該視圖中的時(shí)間存在一定程度的延時(shí)。
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
該視圖提供了關(guān)于占用FRA空間的文件類(lèi)型的詳細信息。該視圖對文件類(lèi)型組合,然后提供每個(gè)文件類(lèi)型所使用的空間百分比,來(lái)自該組的總FRA可回收空間百分比,以及來(lái)自該組的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.
該列是一個(gè)布爾值,用來(lái)指示文件是否位于FRA中。
另一個(gè)列BYTES 可以在V$BACKUP_PIECE和RC_BACKUP_PIECE(rman 恢復目錄視圖)中找到,該列以字節為單位指示備份集片的大小。
其他閃回恢復區特性
在Oracle 10g,如果沒(méi)有設置OMF 相關(guān)的DB_CREATE_ONLINE_LOG_DEST_n 參數,則alter database add logfile和alter database add standby logfile 命令創(chuàng )建FRA中的連接重做日志成員。 Alter database drop logfile 和alter database rename file命令也支持FRA中的文件。
在數據庫創(chuàng )建期間,Oracle 可以使用FRA存儲數據庫控制文件和聯(lián)機重做日志。 如果定義了OMF 相關(guān)參數:DB_CREATE_ONLINE_LOG_DEST_n, 則將在這些位置創(chuàng )建控制文件和重做日志,但不會(huì )在FRA中創(chuàng )建,即使定義了FRA。 如果沒(méi)有定義DB_CREATE_ONLINE_LOG_DEST_n,但定義了CREATE_FILE_DEST,則由CREATE_FILE_DEST定義的位置創(chuàng )建控制文件和聯(lián)機重做日志的副本。 最后,如果定義了DB_RECOVERY_FILE_DEST,則在該位置創(chuàng )建控制文件。 如果沒(méi)有定義任何這些參數,則在OS 特定的默認位置創(chuàng )建控制文件和聯(lián)機重做日志。
FRA和ASM
RMAN支持使用自動(dòng)存儲管理(ASM)存儲RMAN備份。ASM是磁盤(pán)管理工具,使用該工具,DBA就不再需要管理與給定數據庫關(guān)聯(lián)的物理文件。 ASM在一定程度上類(lèi)似于可用于UNIX 中的邏輯卷組。 ASM 使用ASM 磁盤(pán)組,該磁盤(pán)組是存儲在邏輯單元。 物理磁盤(pán)被分配給ASM磁盤(pán)組,并且提供ASM 磁盤(pán)組整體存儲功能。 ASM 磁盤(pán)組可以存在前面分配的文件系統上,或者存儲在RAW磁盤(pán)上。 結合OCFS, 集群的服務(wù)器可以共享RAC配置中的ASM 磁盤(pán)。 配置ASM并定義各種磁盤(pán)組合,就可以分配數據文件,控制文件,聯(lián)機重做日志,以及各種RMAN備份文件給ASM磁盤(pán)組。
ASM 提供了大量特性,包括負載均衡,數據冗余,并且很容易添加和刪除ASM磁盤(pán)組中的新磁盤(pán)。RMAN 支持ASM磁盤(pán)組,但是對于大多數非RAC站點(diǎn)使用ASM 實(shí)現并沒(méi)有多少價(jià)值。
1.3 是否應該使用FRA
我們認為隱藏在FRA后面的思想是優(yōu)秀的,我們也喜歡將備份復制到一些其他的介質(zhì),如磁帶,從而可以脫機使用它們以進(jìn)行災難恢復。
我們喜歡將FRA用于歸檔的重做日志,但仍喜歡將歸檔重做日志復制到多個(gè)位置(具體說(shuō)是多個(gè)磁盤(pán))。 歸檔的重做日志對于數據庫恢復至關(guān)重要,如果丟失一個(gè)歸檔的重做日志,則在該重做日志之后的所有其他重做歸檔就會(huì )幾乎沒(méi)有任何價(jià)值。 因為,我們傾向于使用LOG_ARCHIVE_DEST_n 參數來(lái)配置數據庫,而使用FRA 和另一單獨的文件系統來(lái)存儲歸檔的重做日志。
1.4 ARCHIVELOG 模式之間的切換
具體操作參考我的blog
Oracle 歸檔與非歸檔的切換
二. RMAN 命令行
進(jìn)入RMAN 有兩種不同方法: 命令行 和 OEM。
2.1 通過(guò)RMAN 命令行連接
在OS 提示下簡(jiǎn)單的輸入rman 命令就可以啟動(dòng)RMAN。 一旦啟動(dòng)了RMAN命令解釋程序,就可以執行任何所需的操作。
RMAN 總是以SYSDBA身份連接目標數據庫,所以連接賬戶(hù)必須具有SYSDBA權限。 具體用法參考幫助:
C:\Users\Administrator.DavidDai>rman help
參數 值 說(shuō)明
-----------------------------------------------------------------------------
target 加引號的字符串 目標數據庫連接字符串
目錄 加引號的字符串 恢復目錄的連接字符串
nocatalog 無(wú) 如果已指定, 則沒(méi)有恢復目錄
cmdfile 加引號的字符串 輸入命令文件的名稱(chēng)
log 加引號的字符串 輸出消息日志文件的名稱(chēng)
跟蹤 加引號的字符串 輸出調試信息日志文件的名稱(chēng)
append 無(wú) 如果已指定, 日志將以附加模式打開(kāi)
debug 可選參數 激活調試
msgno 無(wú) 對全部消息顯示 RMAN-nnnn 前綴
send 加引號的字符串 將命令發(fā)送到介質(zhì)管理器
pipe 字符串 管道名稱(chēng)的構建塊
timeout 整數 等待管道輸入的秒數
checksyntax 無(wú) 檢查命令文件中的語(yǔ)法錯誤
-----------------------------------------------------------------------------
單引號和雙引號 (' 或 ") 均可用于加引號的字符串。
除非字符串中有空格, 否則不用引號。
2.2 使用RMAN 的connet 命令
如果啟動(dòng)了RMAN,發(fā)現沒(méi)有連接到正確的數據庫,或者要連接到一個(gè)不同的數據庫(目標數據庫,目錄數據庫,輔助數據庫),可以使用connect 命令來(lái)更改RMAN要連接的數據庫。 使用connect target 命令可以連接到一個(gè)不同的目標數據庫;使用connect catalog 命令可以連接到不同的恢復目錄,使用connect auxiliary 命令可以連接到一個(gè)不同的輔助數據庫。
2.3 退出RMAN 客戶(hù)端
RMAN 退出命令有2個(gè): quit 和 exit。
三. 為RMAN 操作配置數據庫
3.1 設置數據庫用戶(hù)
在默認情況下,可以通過(guò)SYS賬戶(hù)(sysdba)來(lái)使用RMAN,該賬戶(hù)不需要任何配置。當然,在執行產(chǎn)品備份操作時(shí),sysdba 并不是最佳的賬戶(hù)。 建議在使用RMAN執行備份操作之前創(chuàng )建一個(gè)用于RMAN 備份的單獨賬戶(hù)設置。
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;
用戶(hù)已創(chuàng )建。
SQL> grant sysdba to rman;
授權成功。
SQL> host
Microsoft Windows [版本 6.1.7600]
版權所有 (c) 2009 Microsoft Corporation。保留所有權利。
恢復管理器: 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 設置數據庫安全性
先來(lái)看一下本地服務(wù)器上連接RMAN 和 通過(guò)ORACLE net 連接RMAN 兩者之間的差異。 啟動(dòng)RMAN時(shí),我們可能登錄到數據庫所在的服務(wù)器。 在這種情況下,如果使用特許的OS 用戶(hù)賬戶(hù)登錄,登錄時(shí)用具有sysdba 權限的用戶(hù)即可。 根據使用的操作系統,我們可以確定我們的用戶(hù)賬戶(hù)是否是特許的。 如果使用UNIX,通常會(huì )存在一個(gè)名為dba的UNIX 組,它是在創(chuàng )建ORACLE特有的賬戶(hù)(通常名為Oracle)時(shí)創(chuàng )建的。 如果在這個(gè)Unix組中指定我們的UNIX用戶(hù)賬戶(hù),就可以不再執行其他操作而連接到一個(gè)目標數據庫。 如果使用Windows 平臺,特許用戶(hù)會(huì )指定到一個(gè)通常名為ORA_DBA的NT組。
如果沒(méi)有使用特許的賬戶(hù)登錄本地服務(wù)器,或者從客戶(hù)端工作站使用Oracle net來(lái)連接目標數據庫(如:
user/pwd@sid). 就需要配置數據庫使用口令文件。 配置口令文件時(shí),先要創(chuàng )建口令文件,然后配置數據庫,使數據庫明確使用這個(gè)口令文件。 創(chuàng )建口令文件的2個(gè)步驟如下:
3.2.1 創(chuàng )建口令文件
使用Oracle 使用程序orapwd 可以創(chuàng )建口令文件。 該命令有3個(gè)參數:
File:口令文件名
password: sys 用戶(hù)的口令
Entries:為其他特許的Oracle 用戶(hù)賬戶(hù)保留的條目數
缺省情況下,win下口令文件的格式是pwdsid.ora,unix下的格式是orapwSID(大小寫(xiě)敏感),
C:>orapwd file=pwdSID.ORA password=pwd entries=5;
3.2.2 配置數據庫使用口令文件
在默認情況下,Oracle 不會(huì )被配置為使用口令文件(除非使用DBCA創(chuàng )建數據庫)。 是否使用口令文件,是通過(guò)oracle提供的一個(gè)參數remote_login_passwordfile來(lái)控制的,remote_login_passwordfile有none,shared,exclusive3個(gè)值,
none表示不使用口令文件,停用口令文件驗證,Oracle數據庫不允許遠程SYSDBA/SYSOPER身份登錄
exclusive表示實(shí)例獨占使用口令文件,也就是各自實(shí)例使用單獨的口令文件,
shared表示多個(gè)實(shí)例共享一個(gè)口令文件.
Oracle數據庫在啟動(dòng)時(shí),首先查找的是orapw<sid>的口令文件,如果該文件不存在,則開(kāi)始查找,orapw的口令文件,如果口令文件命名為orapw,多個(gè)數據庫就可以共享.
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
注意: 該參數不是動(dòng)態(tài)修改的,修改后需要重啟數據庫。
也可參考blog:
Oracle OS認證 口令文件 密碼丟失處理
3.3 設置CONTROL_FILE_RECORD_KEEP_TIME 參數
為RMAN 配置數據庫時(shí),我們應當考慮在控制文件中存儲備份記錄的時(shí)間。 備份記錄包括完全的數據庫備份記錄,以及指定的數據文件,控制文件,參數文件和歸檔目錄的備份記錄。數據庫參數CONTROL_FILE_RECORD_KEEP_TIME以天為單位(默認值為7天),因此在默認情況下,Oracle 會(huì )將RMAN備份和恢復記錄保存7天。 可以將該參數設置為0到365之間的任意值。
CONTROL_FILE_RECORD_KEEP_TIME參數會(huì )影響一系列的數據庫操作。 首先,產(chǎn)生RMAN備份時(shí),由于與這些備份相關(guān)的記錄存儲在控制文件中,所以該參數直接影響數據庫控制文件的大小。 備份記錄將不斷的保存在控制文件中,控制文件將耗盡空間。 這時(shí),Oracle 會(huì )擴展控制文件來(lái)調整備份記錄所需的存儲空間。 此外,設置為0時(shí),將禁止擴展控制文件,并且會(huì )使得RMAN備份的保存周期不穩定。
我們建議將CONTROL_FILE_RECORD_KEEP_TIME 參數設置為不小于選中數據庫的備份保存周期,否則就可能在備份介質(zhì)上有數據庫備份,但是控制文件不存在與備份相關(guān)的備份記錄,在這種情況下,將無(wú)法恢復這些較早的文件。
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 允許我們執行自動(dòng)的數據庫備份和恢復。 為了支持這個(gè)功能,我們?yōu)橐恍﹨翟O置默認值。
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)
3.4.2 配置多種RMAN 配置
我們可以采用不同的方法來(lái)配置通道: 使用configure channel device type 命令可以配置用于所有通道的默認值;使用configure channel n device type 命令可以配置用于指定默認通道的默認值。
使用configure channel device type clear 命令可以清楚用于所有通道的默認值,使用configure channel n device type clear命令可以清除用于指定默認通道的默認值。
使用allocate channel 命令分配一個(gè)通道時(shí),可以為分配的這個(gè)通道指定名稱(chēng)。 如: allocate channel d1 device type disk 命令可以創(chuàng )建一個(gè)名為d1的通道。 自動(dòng)分配通道時(shí),ORACLE 會(huì )為這些通道指定名稱(chēng),他們的默認名稱(chēng)取決于默認設備類(lèi)型。 磁盤(pán)設備,默認名:ORA_DISK_n; 磁帶設備: 默認名:ORA_SBT_TAPE_n。
自動(dòng)分配通道數取決于所定義的默認并行級別。 執行configure 命令時(shí),Oracle 顯示前面的配置設置,后面跟上新的配置設置。
3.4.3 configure 命令的一些示例:
配置通道默認設置
Configure default device type to sbt;
Configure default device type to disk;
當配置默認的設備類(lèi)型時(shí),Oracle 將使用默認的通道,直到使用backup device type參數重寫(xiě)默認值,也將自動(dòng)分配用于delete 命令的維護通道和用于復制操作的輔助通道。
一旦配置了默認的設備類(lèi)型,就可以配置特定備份類(lèi)型的默認值,當使用備份時(shí),應該進(jìn)行這種備份。 例如,當備份到磁盤(pán)時(shí),可以讓Oracle 默認地使用標準的oracle 備份集方法備份數據庫,或者讓其默認為使用副本,或者默認為壓縮備份集,并表明并行程度(這表示將分配給備份的通道數)。 相關(guān)實(shí)例如下:
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 壓縮,它可以有效的減小備份集的大小。 當然,壓縮占用資源并且需要更長(cháng)的時(shí)間來(lái)完成備份和恢復。
在看一個(gè)自動(dòng)備份和恢復操作期間分配的通道數示例,示例中,分配磁盤(pán)操作的并行級別為2,因此,如果啟動(dòng)自動(dòng)備份操作,就會(huì )分配兩個(gè)通道來(lái)并行執行備份操作。
Configure channel 1 device type disk format 'd:\backup\orcl\backup_%U';
Configure channel 2 device type disk format 'e:\backup\orcl\backup_%U';
注意: 通常在設置默認的并行級別時(shí),應當設置為連接備份數據庫的磁盤(pán)數或者磁帶驅動(dòng)器數。
在配置通道時(shí)有一些可用選項。 使用maxpiecesize 參數,可以控制備份集片的大小,用maxopenfile,可以控制RMAN 一次最多可以打開(kāi)的文件數。 Rate 參數用于限制RMAN 并控制備份時(shí)讀取字節的比率為每秒nB,nKB,nMB和nGB。
如:configure channcel 1 device type disk maxpiecesize 100m maxopenfile 8 rate 100MB;
注意: 不要混淆 maxpiecesize 參數 和 maxsetsize 參數之間的區別。 Maxpiecesize 限定單個(gè)備份集片的大小并且對備份的整體大小沒(méi)有影響。 Maxsetsize 參數限制備份的整體大小,因此需要謹慎使用。
如果是限定所有通道,可以執行如下命令:
Configure channel device type disk maxpiecesize 100m.
為什么需要更改一個(gè)備份集片的最大尺寸呢? 首先是某些指定文件大小存在限制,比如磁帶只能處理一定量的數據,而某些磁盤(pán)文件系統對給定的數據文件的大小有一些限制。
將一個(gè)磁帶設備設置為所有通道的默認設備,并且指定一些參數的設置?!∠嚓P(guān)設置如下:
Configure channel devicetype雙胞胎maxpiecesize100m parms 'ENV=(NB_ORA_CLASS=RMAN_RS100_TAPE)';
配置整個(gè)備份集的默認最大尺寸
Configure maxsetsize to 7500k;
將備份集的最大尺寸設為默認值,即沒(méi)有限制
Configure maxsetsize clear;
注意: 使用maxsetsize 來(lái)限制創(chuàng )建的整個(gè)備份的大小時(shí)需要特別小心。 這是因為數據庫在初始化階段可能小于定義的maxsetsize值,但數據庫很快就會(huì )超過(guò)maxsetsize 值,這樣就會(huì )導致數據庫備份操作失敗。
使用configure 命令時(shí),需要清楚給定的配置,這樣才能使用默認值。 如:
Configure channel 1 device type disk clear;
可以將備份進(jìn)程配置為創(chuàng )建雙路備份(duplexed backup),也就是說(shuō)在不同的位置創(chuàng )建同一個(gè)備份的多個(gè)副本。還可以使用configure 命令來(lái)配置數據庫的默認設置,以使configure 命令執行雙路的自動(dòng)備份操作:
Configure datafile backup copies for device type disk to 2;
快照控制文件,該文件是RMAN 備份期間數據庫控制文件的時(shí)間點(diǎn)副本,這樣可以保證備份與給定時(shí)間點(diǎn)一致。 因此,如果在啟動(dòng)備份操作后在數據庫中添加一個(gè)表空間或者數據文件, 這個(gè)表空間或數據文件就不會(huì )包含在備份中。 如果我們希望在默認位置外的位置創(chuàng )建備份控制文件,就可以使用configure 命令來(lái)定義這個(gè)新位置:
Configure snapshot control file name to 'd:\backup\snapshotSID';
注意: 既是配置了FRA,Oracle 也不會(huì )在FRA中創(chuàng )建控制文件。
在自動(dòng)備份期間,我們可以將指定的表空間排除在備份之外,也可以使用configure 命令來(lái)實(shí)現這一功能:
Configure exclude for tablespace old_data;
Configure 命令允許我們啟用和禁止備份優(yōu)化,啟用備份優(yōu)化時(shí),會(huì )使ORACLE 跳過(guò)在備份設備上已有的相同備份的文件的備份。
Configure backup optimization on;
注意:要執行優(yōu)化操作,就必須啟動(dòng)備份優(yōu)化。此外,我們也必須執行 backup database命令或者backup archivelog命令或與like/all 選項連用,或backup backupset all。 最后,還可以使用backup 命令的force 參數來(lái)禁止備份優(yōu)化。
3.4.4 使用格式串
先看例子:Configure channel 1 device type disk format 'd:\backup\orcl\backup_%U';
在configure 命令中經(jīng)常使用格式串,在backup,resotre,allocate channel 等其他RMAN 命令中也會(huì )經(jīng)??吹礁袷酱?。RMAN 提供了與格式串關(guān)聯(lián)的一些語(yǔ)法元素。 這些元素稱(chēng): 占位符, rman 將使用相應的定義值來(lái)替換他們。 例如示例中的 %U 語(yǔ)法元素告訴RMAN要使用系統生成的唯一表示符替換文件名。
使用FORMAT參數時(shí)可使用的各種替換變量,如下(注意大小寫(xiě))所示:
%a:Oracle數據庫的activation ID即RESETLOG_ID。
%c:備份片段的復制數(從1開(kāi)始編號,最大不超過(guò)256)。
%d:Oracle數據庫名稱(chēng)。
%D:當前時(shí)間中的日,格式為DD。
%e:歸檔序號。
%f:絕對文件編號。
%F:基于"DBID+時(shí)間"確定的唯一名稱(chēng),格式的形式為c-IIIIIIIIII-YYYYMMDD-QQ,其中IIIIIIIIII 為該數據庫的DBID,YYYYMMDD為日期,QQ是一個(gè)1~256的序列。
%h:歸檔日志線(xiàn)程號。
%I:Oracle數據庫的DBID。
%M:當前時(shí)間中的月,格式為MM。
%N:表空間名稱(chēng)。
%n:數據庫名稱(chēng),并且會(huì )在右側用x字符進(jìn)行填充,使其保持長(cháng)度為8。比如數據庫名JSSBOOK,則生成的名稱(chēng)則是JSSBOOKx。
%p:備份集中備份片段的編號,從1開(kāi)始。
%s:備份集號。
%t:備份集時(shí)間戳。
%T:當前時(shí)間的年月日格式(YYYYMMDD)。
%u:是一個(gè)由備份集編號和建立時(shí)間壓縮后組成的8字符名稱(chēng)。利用%u可以為每個(gè)備份集生成一個(gè)唯一的名稱(chēng)。
%U:默認是%u_%p_%c的簡(jiǎn)寫(xiě)形式,利用它可以為每一個(gè)備份片段(即磁盤(pán)文件)生成一個(gè)唯一名稱(chēng),這是最常用的命名方式,執行不同備份操作時(shí),生成的規則也不同,如下所示:
生成備份片段時(shí),%U=%u_%p_%c;
生成數據文件鏡像復制時(shí),%U=data-D-%d_id-%I_TS-%N_FNO-%f_%u;
生成歸檔文件鏡像復制時(shí),%U=arch-D_%d-id-%I_S-%e_T-%h_A-%a_%u;
生成控制文件鏡像復制時(shí),%U=cf-D_%d-id-%I_%u。
%Y:當前時(shí)間中的年,格式為YYYY。
注:如果在BACKUP命令中沒(méi)有指定FORMAT選項,則RMAN默認使用%U為備份片段命名。
3.4.5 配置控制文件和數據庫參數文件的自動(dòng)備份
Oracle 10g 版本中的RMAN 提供了備份控制文件和數據庫參數文件的功能。我們可以配置默認執行這些備份操作。
示例:
Configure controlfile autobackup on;
Configure controlfile autobackup off;
配置控制文件和參數文件的自動(dòng)備份時(shí)的一些規則:
(1) 在RUN 程序塊之外執行每個(gè)RMAN的backup 或者 copy 命令時(shí),都會(huì )自動(dòng)備份控制文件和參數文件。
(2) 使用使用了RUN 程序塊,而且該程序塊的最后一個(gè)命令不是backup 或者copy,在RUN 程序塊結尾處會(huì )備份控制文件和參數文件。
除了上面2種自動(dòng)控制文件備份類(lèi)型,我們還可以配置另一種特殊的控制文件備份類(lèi)型。該類(lèi)型發(fā)生在數據庫變化時(shí),這些變化包括添加新的表空間,添加數據文件,添加聯(lián)機重做日志等。 這些自動(dòng)備份類(lèi)型只在磁盤(pán)上發(fā)生,使用configure controlfile autobackup命令的特殊選項可以簡(jiǎn)化備份。如:
Configure controlfile autobackup format for device type disk to 'd:\backup\sid_%F';
使用了該選項,RDBMS 會(huì )在數據結構的變化控制文件產(chǎn)生影響時(shí)自動(dòng)備份控制文件。強調一點(diǎn),只支持磁盤(pán)。
3.4.6 備份默認的保存策略:
RMAN 允許用戶(hù)使用configure retention policy 命令來(lái)配置保存粗略。 配置保存粗略不會(huì )導致自動(dòng)刪除備份,需要使用delete obsolete 命令才能刪除過(guò)期的備份集。 在report obsolete 命令時(shí)顯示到期的備份集。 如果列出的某個(gè)文件不能被刪除,需要魚(yú)腥crosscheck 命令,否則,Oracle 刪除delete obsolete命令輸出的所有項。
如:
configure retention policy to recovery window of 7 days;
--recover window是保持所有足夠的備份,可以將數據庫系統恢復到最近七天內的任意時(shí)刻。任何超過(guò)最近七天的數據庫備份將被標記為obsolete。
configure retention policy to redundancy 5;
--redundancy 是為了保持可以恢復的最新的5份數據庫備份,任何超過(guò)最新5份的備份都將被標記為redundancy。它的默認值是1份。
configure retention policy clear;
-- 保存策略重置為默認值(冗余為1)
CONFIGURE RETENTION POLICY TO NONE;
-- 不應用任何保存策略。
注意: 如果使用磁帶管理系統,該系統會(huì )具有自己的保存策略。如果磁帶管理系統的保存策略與RMAN中定義的備份保存策略沖突,則磁帶管理系統的保存策略?xún)?yōu)先,同時(shí),恢復備份的能力會(huì )大受影響。
3.4.7 配置默認的加密級別
在Oracle 10g R2以后的版本中,RMAN 可以創(chuàng )建加密備份,在備份期間,Oracle 在創(chuàng )建備份集時(shí)對其進(jìn)行加密。當還原備份時(shí),則對其進(jìn)行解密。
Oracle 提供了3種不同的機密模式:
(1) 透明模式: 透明模式的加密不需要DBA 干涉,為了使用該模式,必須配置Oracle 加密電子皮夾(Encryption Wallet).
(2) 口令模式:口令模式加密需要在創(chuàng )建將要加密的備份或還原(在創(chuàng )建時(shí))加密的備份時(shí)提供口令。 在RMAN備份腳本中使用命令: set encryption on identified by password only 提供口令。
(3) 雙重模式:可以通過(guò)口令或Oracle 加密電子皮夾來(lái)還原雙重模式的備份。 因為不需要安裝Oracle 加密電子皮夾,雙重模式簡(jiǎn)化了備份的離站還原??梢允褂? set encryption on identifiedby password 命令(注意,少了only) 創(chuàng )建雙重模式加密備份。
使用configure 命令配置各種與RMAN備份加密相關(guān)的持久性設置??梢允褂肦MANconfigure 命令來(lái)設置以下相關(guān)內容:
(1) 是否應該加密所有的數據庫文件
(2) 是否應該加密特定的表空間
(3) 應該使用那種可用的機密算法來(lái)機密備份
如果正在使用基于Oracle 加密電子皮夾的安全保護,則只需要設置configure 命令所需的持久性RMAN 設置。 如果希望使用口令模式加密或雙重模式加密,就需要使用configure 命令配置持久性安全默認值,然后啟動(dòng)備份時(shí)使用set 命令設置備份口令,則在每次RMAN備份或者恢復會(huì )話(huà)期間必須輸入該口令。
下面的示例中,為整個(gè)數據庫配置并啟用備份加密。 注意,如果沒(méi)有配置Oracle 加密電子皮夾,隨后的任何備份都將會(huì )失敗,除非使用set 命令建立會(huì )話(huà)的加密口令。
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;
如果滿(mǎn)足下列條件,則使用加密備份歸檔的重做日志備份:
(1) 在進(jìn)行歸檔重做日志的備份時(shí)執行set encryption on 命令。
(2) 已經(jīng)為整個(gè)數據庫配置了加密,或者至少為數據庫的一個(gè)表空間配置了加密。
3.4.8 配置歸檔日志刪除策略。
可以配置RMAN來(lái)管理歸檔重做日志的刪除策略。默認情況下,Oracle 將配置的備份保存策略應用于歸檔的重做日志。 然而,如果正在使用FRA和備用數據庫,就可以配置RMAN, 在使用configure archivelog deletion policy to applied on standby 命令,將歸檔的重做日志應用與強制的備用數據庫后將其標記為可刪除。 在這種情況下,一旦已經(jīng)成功將歸檔的重做日志應用于強制的備用數據庫位置,Oracle 就可以將其從FRA 中刪除。
3.5 使用共享服務(wù)器的情況
如果使用Oracle 的共享服務(wù)器選項(10g以前稱(chēng)為MTS,或者 多線(xiàn)程服務(wù)器),就必須配置一個(gè)RMAN使用的專(zhuān)用服務(wù)器,這是因為RMAN不能使用共享服務(wù)器會(huì )話(huà)連接到數據庫。
如果共享的,就必須通過(guò)Net Manager 工具配置一個(gè)專(zhuān)用的:
MYICD =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = DavidDai)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = myicd)
)
)
四. 恢復目錄
Oracle 在RMAN存儲庫中維護與RMAN操作相關(guān)的所有元數據。RMAN存儲庫總是被存儲在目標數據庫的控制文件中,我們可以用另一個(gè)位置存儲數據的RMAN存儲庫。 這就是RMAN恢復目錄。
在大多數操作中,RMAN 都不要恢復目錄,因此在許多情況下,恢復目錄實(shí)際上是一個(gè)可選的組件。 因為恢復目錄在很大程度上可選,所以RMAN的默認配置中沒(méi)有恢復目錄。
4.1 恢復目錄的定義
恢復目錄是RMAN的一個(gè)可選組件,它存儲來(lái)自RMAN備份的歷史備份信息。 與數據庫控制文件的RMAN信息不同,恢復目錄數據不是定期的進(jìn)行清楚,因此恢復目錄會(huì )保存比控制文件更多的歷史信息。 使用恢復目錄比只使用數據庫控制文件有更多的優(yōu)點(diǎn),這些優(yōu)點(diǎn)包括:
(1) 如果要使用存儲的RMAN腳本,就必須使用恢復目錄
(2) 恢復目錄提供存儲全企業(yè)RMAN信息的單一存儲庫,它可以更方便,靈活地集中存儲企業(yè)的備份信息
(3) 由于可以在當前時(shí)間之外的時(shí)間報告目標數據庫的信息,所以恢復目錄使得報告起來(lái)更有靈活性。
(4) 使用恢復目錄可以保留某些默認的數據庫RMAN 通道配置信息。
如果你是RMAN 老手,就會(huì )注意到這里缺少一些優(yōu)點(diǎn):
(1)Oracle 10g可以很容易的在沒(méi)有恢復目錄的情況下通過(guò)resetlogs 支持恢復
(2)如果使用控制文件自動(dòng)備份,則不在需要將恢復目錄用于控制文件恢復。
注意:如果不會(huì )使用恢復目錄,則保存對數據庫DBID的記錄。 雖然這不是必須的內容,但是數據庫的DBID很有用,而且使用DBID可以簡(jiǎn)化恢復操作。
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
是否應該使用恢復目錄?
如果只有很少的一些數據庫,則恢復目錄就可能不值得話(huà)費額外的時(shí)間和精力在它上面。 如果有許多數據庫,則應該考慮使用恢復目錄。 一般來(lái)說(shuō),恢復目錄帶來(lái)的靈活性和集中的全企業(yè)報告優(yōu)點(diǎn)在價(jià)值上超過(guò)了它所增加的維護和管理成本。 然而,使用恢復目錄的一個(gè)缺點(diǎn)在于,如果目錄數據庫關(guān)閉,則所有備份都會(huì )失敗,除非已經(jīng)編碼的腳本,從而在使用恢復目錄的第一個(gè)備份失敗時(shí),執行沒(méi)有恢復目錄的備份。
此外,恢復目錄是數據保護備份環(huán)境和分割鏡像(split mirror)備份的基礎部分。 在這些配置中,當備份來(lái)自于備份主機的數據庫時(shí),可以認為恢復目錄是最近的信息,因此它是該策略的核心內容,若維護不當則成為失敗的導火索。記住,底線(xiàn)是看環(huán)境是否需要恢復目錄。
連接RMAN時(shí),必須使用catalog 命令行參數來(lái)表明將要建立RMAN與恢復目錄的連接。在默認情況下,RMAN使用nocatalog 選項,該選項表明不使用恢復目錄。使用catalog 參數后,需要指明包含恢復目錄對象的恢復目錄模式的用戶(hù)ID 和口令。
4.2 創(chuàng )建恢復目錄
4.2.1 配置恢復目錄數據庫
恢復目錄數據庫應該盡可能存在于敦力的數據庫上。 然后,根據我們的經(jīng)驗,許多站點(diǎn)使用活動(dòng)數據庫作為恢復目錄數據庫,只要在備份數據庫時(shí)采取預防措施,這也是可行的。每個(gè)注冊的數據庫可以分配20M左右的表空間。
SQL> create tablespace rman_ts datafile 'D:\APP\ADMINISTRATOR\ORADATA\MYNEWCCS\rmants.dbf' size 20M;
表空間已創(chuàng )建。
4.2.2 創(chuàng )建恢復目錄用戶(hù)
恢復目錄用戶(hù)需要connect,resource,recovery_catalog_owner 權限。
SQL> Create user rcat_dave identified by rcat_dave default tablespace rman_ts;
用戶(hù)已創(chuàng )建。
SQL> Grant connect,resource,recovery_catalog_owner to rcat_dave;
授權成功。
4.2.3 創(chuàng )建恢復目錄模式對象
創(chuàng )建恢復目錄在Oracle 10g中是一個(gè)簡(jiǎn)單的過(guò)程,該過(guò)程僅需要使用RMAN。 啟動(dòng)RMAN時(shí),使用target 參數連接目標數據庫,再使用catalog參數連接恢復目錄數據庫模式。 最后在RMAN 提示符下執行 create catalog命令即可。
恢復管理器: 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 是第一步創(chuàng )建的
恢復目錄已創(chuàng )建
RMAN>
4.2.4 在恢復目錄中注冊數據庫
使用恢復目錄執行數據庫的RMAN備份操作前必須注冊數據庫。方法如下:
RMAN> register database;
注冊在恢復目錄中的數據庫
正在啟動(dòng)全部恢復目錄的 resync
完成全部 resync
用report schema 命令驗證是否注冊成功:
RMAN> report schema;
4.2.5 刪除恢復目錄
使用drop_catalog 命令可刪除恢復目錄模式,不過(guò)這樣也會(huì )使包含在模式中的所有信息都會(huì )丟失。因此在刪除之前要考慮做好備份。
RMAN> drop catalog;
恢復目錄所有者是RCAT_DAVE
再輸入一次 DROP CATALOG 命令來(lái)確認目錄刪除
RMAN> drop catalog;
恢復目錄已刪除
RMAN>
4.2.6 在恢復目錄中添加RMAN 備份
如果已經(jīng)在沒(méi)有恢復目錄的情況下執行了RMAN備份,并且希望在后面將這些備份添加到恢復目錄,則可以使用catalog命令??梢詫祿募北?,備份集片,歸檔日志備份,甚至整個(gè)備份目錄添加到目錄中。 示例如下:
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 命令來(lái)取消數據庫注冊。如果希望取消已經(jīng)存在的數據庫注冊,只要連接到數據庫和恢復目錄,并執行unregister database命令即可。
RMAN> unregister database;
如果已經(jīng)刪除數據庫,并且希望從恢復目錄中刪除該數據庫,則在大多數情況下只需要知道希望取消注冊數據庫的名稱(chēng)。
RMAN> unregister database mynewccs;
當恢復目錄中有多個(gè)相同名稱(chēng)注冊的數據庫時(shí),就需要知道需要取消注冊的數據庫的DBID。然后在run 代碼塊中運行unregister database,同時(shí)使用set dbid 命令。
RMAN> run
{
set dbid 1108507251;
unregister database mynewccs noprompt;
}