1 Recovery Manager(RMAN)特性
是一種用於集備份(backup)、還原(restore)和恢復(recover)資料庫於一體的Oracle 工具,支援命令列及圖形介面操作
能夠備份整個資料庫、表空間、資料檔案、控制檔案、歸檔檔案以及Spfile引數檔案。
支援增量資料塊級別的備份和塊級別的介質恢復
可以儲存頻繁執行的備份恢復指令碼
可以實現資料庫的克隆、使用RMAN建立備用資料庫
支援映象備份與備份集,可以備份到磁碟與磁帶
管理備份與恢復任務
可增加備份併發度或限制I/O減少備份給資料庫帶來的影響
在備份期間檢查損壞的資料塊
支援在備份期間使用壓縮特性來減少磁碟空間的佔用
2 RMAN元件
1.RMAN可執行程式
在Windows作業系統中為rman.exe,在Unix系統中為rman
程式所在位置:$ORACLE_HOME/bin
a.程式與記憶體要求
更多的程式的需要
大池的分配
b.基本環境變數需求
ORACLE_SID,ORACLE_HOME,PATH,NLS_LANG,對基於時間的備份與恢復,需要另外設定NLS_DATE_FORMAT
c.許可權要求
需要sysdba系統許可權
如果是本地,也可以採用OS認證,遠端需要採用密碼檔案認證
d.版本要求
RMAN工具版本與目標資料庫必須是同一個版本。如使用恢復目錄 還需要注意
建立rman恢復目錄的指令碼版本必須大於或等於恢復目錄所在資料庫的版本
建立rman恢復目錄的指令碼版本必須大於或等於目標資料庫版本
e.注意Linux中有兩個RMAN
[root@robinson ~]# find / -name rman
/usr/X11R6/bin/rman #--非oracle的rman命令
/u01/app/oracle/10g/oc4j/j2ee/oc4j_applications/applications/em/em/database/rman
/u01/app/oracle/10g/oc4j/j2ee/oc4j_applications/applications/em/em/WEB-INF/perl/db/rman
/u01/app/oracle/10g/bin/rman #--oracle中的rman命令
/u01/app/oracle/10g/sysman/admin/scripts/db/rman
根據變數PATH的設定,哪個在前,則優先使用在前面的命令
解決辦法:修改PATH變數,即將.bash_profile檔案PATH項中$ORACLE_HOME/bin放在$PATH之前
[oracle@robinson ~]$ echo $PATH #--修改前
/usr/kerberos/bin:/usr/local/bin:/bin:/usr/bin:/home/oracle/bin:/u01/app/oracle/10g/bin
[oracle@robinson ~]$ echo $PATH #--修改後
/u01/app/oracle/10g/bin:/usr/kerberos/bin:/usr/local/bin:/bin:/usr/bin:/home/oracle/bin
2.目標資料庫
目標資料庫即指想要備份、還原與恢復的資料庫。RMAN可執行程式一次只能連線一個資料庫
目標資料庫的控制檔案儲存了RMAN所需的資訊(儲存倉庫使用控制檔案時),RMAN通過讀取控制檔案來確定目標資料庫的物理結構,
要備份的資料檔案的位置,歸檔資訊等,在使用RMAN時會對控制檔案進行更新。
3.伺服器程式與通道
RMAN可從從遠端或本地通過普通的伺服器會話與呼叫PL/SQL連線到例項,RMAN啟動後會產生一個普通的伺服器程式
一旦備份與還原操作啟動,則RMAN會根據配置啟用一個或多個通道
通道簡言之即是完成檔案複製工作的的伺服器程式,多通道則實現了並行執行操作
通道分為備份或還原到磁碟的磁碟通道(disk channel)、備份還原到磁帶的磁帶通道(SBT),可以自動或手動分配通道
4.儲存倉庫
儲存了與目標資料庫及其備份相關的後設資料
包含目標資料庫物理結構的詳細資訊、資料檔案的位置
已完成的所有備份的細節
RMAN的永久配置資訊
儲存倉庫始終被儲存在目標資料庫的控制檔案內,或儲存在恢復目錄內(一個單獨的Oracle資料庫)
引數control_file_record_keep_time決定了控制檔案裡可重複使用的記錄所能儲存的最小天數
當一條新的記錄需要新增到可重用記錄的空間時,並且最老的記錄在可重用記錄空間中還沒有老化,即實際保留的天數未超過
這個引數規定的天數,則控制檔案中可重用記錄部分的空間將被自動擴充套件,此時控制檔案尺寸將會變大。
5.恢復目錄
可以將目標資料庫的備份恢復,後設資料等相關資訊寫入到一個單獨的資料庫,這個單獨的資料庫即為恢復目錄
恢復目錄可以儲存RMAN指令碼,而非恢復目錄情況下,則備份恢復指令碼儲存為作業系統檔案
恢復目錄的內容通常包括,資料檔案、歸檔日誌備份集,備份片,映象副本、RMAN儲存指令碼,永久久的配置資訊等
建議將恢復目錄放置到與目標資料庫不同的主機之上
6.支援介質管理庫
介質管理庫用於RMAN從磁帶進行備份與還原
RMAN支援主流的磁帶庫裝置與軟體(IBM,Hewlett Packard)
7.輔助資料庫(Standby Database $ duplicate database)
Standby Database:是目標資料庫的一個副本,使用目標資料庫(主資料庫)archived log將其更新,不具有唯一的DBID
rman 可以建立或備份Standby Database,可用於主資料庫的故障轉移
duplicate database:是目標資料庫的一個副本或子集,且擁有唯一的DBID,從而獨立於主資料庫
能夠在相同的恢復目錄內作為一個主資料庫註冊,通常用於測試目的
TSPITR(tablespace point-in-time recovery):表空間時點恢復,將一個或多個表空間恢復到非當前狀態,而其它表空間保留當前狀態
8.備份目的地
預設的備份目的地為閃回區,$ORACLE_BASE/flash_recovery_area/
可以設定引數DB_RECOVERY_FILE_DEST引數和DB_RECOVERY_FILE_SIZE進行調整
9.通道與通道分配,請參考:RMAN 配置、監控與管理
3使用RMAN連線到資料庫
1.RMAN使用時需要考慮的問題
資源:共享記憶體,更多的程式
許可權:授予使用者sysdba許可權,OS訪問裝置的許可權
遠端操作
設定密碼檔案
確保密碼檔案被備份
全球化環境變數設定
在RMAN命令列格式化時間引數
2.連線型別
目標資料庫
恢復目錄資料庫,預設情況下RMAN執行在非恢復目錄資料庫
輔助資料庫
Standby database
Duplicate database
TSPITR instance
4.連線目標資料庫或恢復目錄
--不連線資料庫僅啟動rman
[oracle@oradb ~]$ rman
--使用作業系統認證連線到目標資料庫
Unix: $ ORACLE_SID = orcl; export ORACLE_SID
$ rman target /
Win: C:/> set oracle_sid = orcl
C:/> rman target /
--從命令列連線到目標資料庫和恢復目錄
% rman target / catalog rman/cat@catdb --使用OS認證,第二個rman為恢復目錄的schema
% rman target sys/oracle@trgt catalog rman/cat@catdb --使用Oracle Net 認證
--從rman提示符連線到目標資料庫和恢復目錄
% rman
RMAN> connect target / --使用OS認證
RMAN> connect catalog rman/cat@catdb
% rman
RMAN> connect target sys/oracle@trgt --使用Oracle Net 認證
RMAN> connect catalog rman/cat@catdb
--命令列連線到輔助資料庫
% rman auxiliary sys/aux@auxdb
% rman target sys/oracle@trgt auxiliary sys/aux@auxdb catalog rman/cat@catdb
--從rman提示符連線輔助資料庫
% rman
RMAN> connect auxiliary sys/aux@auxdb
% rman
RMAN> connect target sys/oracle@trgt
RMAN> connect catalog rman/cat@catdb
RMAN> connect auxiliary sys/aux@auxdb
--其它
遠端連線
rman target sys/oracle@trgt
rman target / nocatalog 等同於rman target /
--rman命令列引數
輸出到日誌檔案
$ rman target sys/oracle
log = $ORALCE_HOME/oradata/log/rman.log append
執行命名檔案
$ rman target sys/oracle
cmdfile = $ORACLE_HOME/scirpts/my_rman_script.rcv
$rman target sys/oracle@prod @'$ORACLE_HOME/scirpts/my_rman_script.rcv'
4 RMAN命令
RMAN 命令分類
單命令
僅僅在RMAN提示符下執行
單獨被執行
不能夠作為RUN的子命令
如backup database
下列命令不能用作批命令來使用
CONNECT
CONFIGURE
CREATE CATALOG, DROP CATALOG, UPGRADE CATALOG
CREATE SCRIPT, DELETE SCRIPT, REPLACE SCRIPT
LIST
REPORT
批命令
在RUN命令中用括號括起來使用,常用的批命令為allocate channel,set newname for datafile,release channel,switch,set等
作為一個組被執行
如:
RMAN> RUN {
2> backup incremental level 0
3> format '/u01/app/oracle/bak/%d_%s_%p'
4> fileperset 5(database include current controlfile);
5> sql 'alter databaes archive log current ';}
混合的獨立和作業命令