RMAN 概述及其體系結構

RMAN 概述及其體系結構

一、Recovery Manager(RMAN)特性
    是一種用於集備份(backup)、還原(restore)和恢復(recover)數據庫於一體的Oracle 工具,支持命令行及圖形界面操作
    能夠備份整個數據庫、表空間、數據文件、控制文件、歸檔文件以及Spfile參數文件。
    支持增量數據塊級別的備份和塊級別的介質恢復
    可以保存頻繁執行的備份恢復腳本
    可以實現數據庫的克隆、使用RMAN建立備用數據庫
    支持鏡像備份與備份集,可以備份到磁盤與磁帶
    管理備份與恢復任務
    可增加備份併發度或限制I/O減少備份給數據庫帶來的影響
    在備份期間檢查損壞的數據塊
    支持在備份期間使用壓縮特性來減少磁盤空間的佔用

二、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 配置、監控與管理

三、使用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'

四、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 ';}
        混合的獨立和作業命令

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