<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                企業??AI智能體構建引擎,智能編排和調試,一鍵部署,支持知識庫和私有化部署方案 廣告
                RMAN可以用來備份主備用數據庫,如表空間、數據文件、歸檔日志、控制文件、服務器文件與備份集,下面我們分情況進行試驗。 ## 一、文件拷貝 原始文件的拷貝,有點類似于OS熱備份,可以拷貝整個數據文件到另外一個地點,但是結果僅僅只能寫入到硬盤,而且單獨的文件是分開的。 數據文件拷貝實例: ~~~ run { allocate channel d1 type disk; allocate channel d2 type disk; allocate channel d3 type disk; copy # first datafile 1 to '$HOME/prd1.dbf', datafile 2 to '$HOME/prd2.dbf'; copy # second datafile 3 to '$HOME/prd3.dbf'; sql 'alter system archive log current'; } ~~~ ## 二、備份與備份集? RMAN 的常規備份是產生只有 RMAN 才能識別的備份集,所以,除了 copy 命令之外的其他備份,都是RMAN 產生的備份集以及對應的備份片。 如下是備份數據庫的實例,它開啟兩個通道,將數據庫備份到磁帶: ~~~ run { allocate channel t1 type 'SBT_TAPE'; allocate channel t2 type 'SBT_TAPE'; backup filesperset 2 format 'df_%t_%s_%p' database; } ~~~ RMAN 也可以實現多個鏡相的備份: ~~~ Run{ allocate channel d1 type disk; allocate channel d2 type disk; allocate channel d3 type disk; SET BACKUP COPIES 3; BACKUP DATAFILE 7 FORMAT '/tmp/%U','?/oradata/%U','?/%U'; }; ~~~ 以下是常見的備份歸檔的例子: ~~~ RMAN>sql ‘alter system archive log current’; RMAN>backup archivelog all delete input; RMAN> backup archivelog from time '01-jan-00' until time '30-jun-00'; RMAN> backup archivelog like 'oracle/arc/dest/log%';?? 10 RMAN> backup archivelog all; RMAN> backup archivelog from logseq 20 until logseq 50 thread 1; RMAN> backup archivelog from scn 1 until scn 9999; ~~~ 在RAC環境中,因為數據庫是共享的,所以可以連接到一個實例就可以備份整個數據庫,但是,因為歸檔日志可以備份在本地,所以 RAC歸檔日志的備份就變的復雜一些,我們可以通過連接到兩個實例的通道來備份兩個實例的歸檔日志。 ~~~ run{ ALLOCATE CHANNEL node_c1 DEVICE TYPE DISK CONNECT ['sys/pass@dbin1'](#); ALLOCATE CHANNEL node_c2 DEVICE TYPE DISK CONNECT ['sys/pass@dbin2'](#); sql 'ALTER SYSTEM ARCHIVE LOG CURRENT'; backup archivelog all delete input format '/u01/dbbak/%U_%s.bak' filesperset = 5; } ~~~ ## 三、常見備份參數 1、Keep參數可以長期的保持特殊的備份或者拷貝,讓它們不受默認備份保持策略的影響,如 ~~~ RMAN> BACKUP DATABASE KEEP UNTIL TIME 2> "to_date('31-MAR-2002','DD_MM_YYYY)" nologs; RMAN> BACKUP TABLESPACE SAMPLE KEEP FOREVER NOLOGS; ~~~ 其中 NOLOGS 表示可以不保留該備份以來的歸檔日志,默認是 LOGS,表示保留該備份以來的參數,如果想讓該備份永久有效,可以使用 FOREVER參數。 2、Tag參數指明了備份集的標志,可以達到 30 個字符長度,如 ~~~ RMAN> BACKUP DEVICE TYPE DISK DATAFILE 1 TAG 2> "wkly_bkup"; ~~~ 在 Oracle? 92 版本以后,RMAN 自動提供一個 TAG,格式為 TAGYYYYMMDDTHHMMSS如TAG20020208T133437,通過備份標志 TAG,也可以很方便的從備份集進行恢復,如Restore database from tag=’tag name’ ## 四、增量備份 在說明增量備份之前, 首先要理解差異增量與累計增量備份,以及增量備份的備份與恢復原理。差異增量,是默認的增量備份方式。?差異增量是備份上級或同級備份以來變化的塊,累計增量是備份上級備份以來變化的塊。累計增量增加了備份的時間,但是因為恢復的時候,需要從更少的備份集中恢復數據,所以,為了減少恢復的時候,累計增量備份將比差異增量備份更有效。? 不管怎么樣增量備份,在 Oracle 版本 9 中,還是需要比較數據庫中全部的數據塊,這個過程其實也是一個漫長的過程,而且由于增量備份形成多個不同的備份集,使得恢復變的更加不可靠而且速度慢,所以增量備份在版本 9 中仍然是雞肋,除非是很大型的數據倉庫系統,沒有必要選擇增量備份。 Oracle 版本10在增量備份上做了很大的改進,可以使增量備份變成真正意義的增量,因為通過特有的增量日志,使得 RMAN 沒有必要去比較數據庫的每一個數據塊,當然,代價就是日志的IO 與磁盤空間付出,完全還是不適合OLTP系統。另外,版本10 通過備份的合并,使增量備份的結果可以合并在一起,而完全的減少了恢復時間。 增量備份都需要一個基礎,比如0 級備份就是所有增量的基礎備份,0級備份與全備份的不同就是0級備份可以作為其它增量備份的基礎備份而全備份是不可以的, 是否選擇增量備份作為你的備份策略,最終,需要你自己有一個清醒的認識。 以下是零級備份的例子 backup incremental level 0 database; 一級差異增量例子 backup incremental level 1 database; 一級累計增量例子 backup incremental level 1 cumulative database;?? 12 ## 五、備份檢查 我們可以通過Validate命令來檢查是否能備份,如數據文件是否存在,是否存在壞塊不能被備份,如: BACKUP VALIDATE DATABASE; BACKUP VALIDATE DATABASE ARCHIVELOG ALL; ## 六、重新啟動備份 對于異常結束了的備份,很多人可能不想再重新開始備份了吧,特別是備份到 90%以上,因為異常原因終止了該備份,那怎么辦呢?RMAN 提供一個重新開始備份的方法,通過簡單的命令,你就可以只備份那不到10%的數據了。 ~~~ RMAN> BACKUP NOT BACKED UP SINCE TIME 'SYSDATE-14' 2> DATABASE PLUS ARCHIVELOG; ~~~ ## 七、RMAN 動態性能視圖 以下是與 RMAN 備份有關系的一些動態性能視圖,信息是從控制文件中獲取的。 ~~~ V$ARCHIVED_LOG V$BACKUP_CORRUPTION V$COPY_CORRUPTION V$BACKUP_DATAFILE V$BACKUP_REDOLOG V$BACKUP_SET V$BACKUP_PIECE V$BACKUP_DEVICE V$CONTROLFILE_RECORD_SECTION ~~~ 這里還有一個視圖,可以大致的監控到 RMAN備份進行的程度。如通過如下的 SQL腳本, 將獲得備份的進度。 ~~~ SQL> SELECT SID, SERIAL#, CONTEXT, SOFAR, TOTALWORK, 2 ROUND(SOFAR/TOTALWORK*100,2) "%_COMPLETE" 3 FROM V$SESSION_LONGOPS 4 WHERE OPNAME LIKE 'RMAN%' 5 AND OPNAME NOT LIKE '%aggregate%' 6 AND TOTALWORK != 0 7 AND SOFAR <> TOTALWORK; SID SERIAL# CONTEXT SOFAR??? TOTAL?? WORK %_COMPLETE ---??? -------????? -------??????? -------???? ---------??? ---------- 13?? 75????????? 1?????????? 9470????? 15360??? 61.65 12?? 81????????? 1?????????? 15871??? 28160??? 56.36? ~~~ ?Oracle社區PDM中文網:[http://www.pdmcn.com/bbs](http://www.pdmcn.com/bbs),? ?Oracle 專家QQ群:60632593、60618621 ?Oracle技術資料:《Oracle 9i RMAN參考使用手冊》、《ORACLE10G備份與恢復》、《**Oracle Database 10gRMAN備份與恢復**》 ?
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看