Oracle 10g備份與恢復高階使用者指南--第六章 RMAN備份過程與方法

panpong發表於2017-01-04

第六章        RMAN備份過程與方法

1.           配置channel

多路備份:

RMAN> CONFIGURE DEVICE TYPE sbt PARALLELISM 1;

RMAN> CONFIGURE DEFAULT DEVICE TYPE TO sbt;

RMAN> CONFIGURE CHANNEL DEVICE TYPE DISK FORMAT '/save1/%U', '/save2/%U';

RMAN> CONFIGURE DATAFILE BACKUP COPIES FOR DEVICE TYPE sbt TO 2;

RMAN> CONFIGURE ARCHIVELOG BACKUP COPIES FOR DEVICE TYPE sbt TO 2;

RMAN> CONFIGURE DATAFILE BACKUP COPIES FOR DEVICE TYPE DISK TO 2;

RMAN> BACKUP DEVICE TYPE DISK AS COPY DATABASE;

RMAN> LIST BACKUP SUMMARY;

 

RMAN> BACKUP AS BACKUPSET DEVICE TYPE DISK COPIES 3 INCREMENTAL LEVEL 0 DATABASE;

RMAN> LIST BACKUP SUMMARY;

2.                  Making Split Mirror Backups with RMAN

RMAN> CONNECT TARGET SYS/oracle@trgt

RMAN> CONNECT CATALOG rman/cat@catdb

RMAN> SQL 'ALTER TABLESPACE users BEGIN BACKUP';

RMAN> SQL 'ALTER SYSTEM SUSPEND';

...

RMAN> SQL 'ALTER SYSTEM RESUME';

RMAN> SQL 'ALTER TABLESPACE users END BACKUP';

RMAN> CATALOG DATAFILECOPY '/dk2/oradata/trgt/users01.dbf'; # catalog split mirror

RMAN> BACKUP DATAFILECOPY '/dk2/oradata/trgt/users01.dbf';

RMAN> CHANGE DATAFILECOPY '/dk2/oradata/trgt/users01.dbf' UNCATALOG;

 

 

3.           備份備份集

特別適用以下2種情況:

一、磁碟、磁帶中都需要儲存備份

二、為釋放磁碟空間,將備份集轉移到磁帶上

命令:BACKUP BACKUPSET

RMAN> BACKUP DEVICE TYPE sbt BACKUPSET ALL;

RMAN> BACKUP DEVICE TYPE sbt BACKUPSET ALL DELETE INPUT;

# makes backup sets on disk

BACKUP DEVICE TYPE DISK AS BACKUPSET DATABASE PLUS ARCHIVELOG;

BACKUP DEVICE TYPE sbt BACKUPSET ALL; # copies backup sets on disk to tape

BACKUP COPIES 2 DEVICE TYPE sbt BACKUPSET ALL;

BACKUP DEVICE TYPE sbt BACKUPSET COMPLETED BEFORE 'SYSDATE-7' DELETE INPUT;

BACKUP BACKUPSET 872;

 

4.          

         backup copy of命令執行備份映象複製的備份,既可以備份備份集檔案,也可以備份映象檔案,並且能將映象備份檔案備份為備份集檔案;

RMAN> BACKUP DEVICE TYPE sbt COPY OF DATABASE;

RMAN> BACKUP DEVICE TYPE sbt COPY OF DATABASE DELETE INPUT;

RMAN> BACKUP AS COPY COPY OF DATABASE

RMAN> BACKUP AS BACKUPSET COPY OF TABLESPACE tbs_name

RMAN> BACKUP AS BACKUPSET COPY OF DATAFILE datafile

 

5.          

         為了提高資料安全性,可以對備份集的備份進行加密,並且只能對備份集檔案加密,而不能為映象備份檔案加密;加密的備份在還原或恢復時是自動解密的(解密金鑰為可用即可),解密金鑰可以是使用者提供的密碼或oracle加密錢包;RMAN加密備份時,目標資料庫的COMPATIBLE初始化引數必須10.2.0以上;

       BACKUP BACKUPSET命令能夠備份已經加密的備份集檔案,並且不需要解密金鑰,同時也不會解密任何檔案;BACKUP BACKUPSET命令既不會加密也不會解密檔案;

         如果資料庫中的某些欄位是使用透明資料加密方法(Transparent Data Encryption)已經加密過的,當加密備份對應檔案時,這些欄位資料會被二次加密;而當還原restore加密備份集時,加密欄位會恢復到原始的加密格式;

         V$RMAN_ENCRYPTION_ALGORITHMS檢視可以查詢RMAN支援的加密演算法;如果沒有特別指定加密演算法預設加密演算法是AES128

         RMAN提供3中加密模式:透明模式、密碼模式、雙重模式;值得注意的是,透明模式和雙重模式是依賴oracle加密錢包的(加密錢包參考Oracle Advanced Security Administrator's Guide);透明模式是RMAN預設模式;

         使用透明模式加密前,必須先配置好加密錢包;錢包配置好後,加密備份或還原都不需要DBA的干預了;

         密碼模式加密在備份和還原時都需要DBA提供密碼,並且,還原時所需密碼必須與備份時的密碼一樣;密碼模式加密對於需要保證網路傳輸過程中資料安全性的遠端還原與恢復十分有用;密碼模式不能固定配置;密碼模式如果排他使用的話,也不需要配置oracle 加密錢包;配置方法:SET ENCRYPTION ON IDENTIFIED BY password ONLY

         雙重模式加密既可以透明模式還原,也可以密碼模式還原;對於既要正常的現場還原,也會偶爾的遠端還原的需求十分有用;配置方法:SET ENCRYPTION ON IDENTIFIED BY password

配置加密:

RMAN> CONFIGURE ENCRYPTION FOR DATABASE ON

RMAN> SET ENCRYPTION ON

RMAN> CONFIGURE ENCRYPTION FOR DATABASE OFF

 

6.          

備份最佳化配置:

RMAN> CONFIGURE BACKUP OPTIMIZATION ON;

備份重啟:接著備份上一次沒有完成的備份

RMAN> BACKUP NOT BACKED UP SINCE TIME 'SYSDATE-14' DATABASE PLUS ARCHIVELOG;

 

         當備份資料檔案到DISK時,資料檔案邏輯塊大小必須是目標儲存裝置的物理塊大小的偶數倍;例如,磁碟的物理塊大小是2K,則備份的資料檔案的邏輯塊大小隻能是2K4K8K等;而實際情況,磁碟物理塊大小通常是512位元組,因此很少遇到該限制情況;但是,當BACKUP ... DEVICE TYPE DISK的裝置是CDDVD或其它裝置時,可能會遇到此限制情況;

 

7.           驗證備份有效性

         RMAN備份命令BACKUP……VALIDATE,可以預先驗證備份是否成功;該命令主要是2個功能,一是檢查所有需要備份的檔案是否存在壞塊,二是確認檔案是否存在,並且位置正確;validate不會真正產生備份檔案;如果驗證過程中發現壞塊,則RMAN更新V$DATABASE_BLOCK_CORRUPTION檢視,記錄壞塊資訊;壞塊修復後,則會刪除相關記錄;另外,validate不能與maxcorruptproxy配合使用;

#檢查物理壞塊

RMAN> BACKUP VALIDATE DATABASE ARCHIVELOG ALL;

#檢查邏輯壞塊

RMAN> BACKUP VALIDATE CHECK LOGICAL DATABASE ARCHIVELOG ALL;

 

8.          

案例1:同時在多個磁碟驅動上進行備份(分散備份)

RUN

{

  ALLOCATE CHANNEL disk1 DEVICE TYPE DISK FORMAT '/disk1/%d_backups/%U';

  ALLOCATE CHANNEL disk2 DEVICE TYPE DISK FORMAT '/disk2/%d_backups/%U';

  ALLOCATE CHANNEL disk3 DEVICE TYPE DISK FORMAT '/disk3/%d_backups/%U';

  BACKUP AS COPY DATABASE;

}

 

CONFIGURE DEVICE TYPE DISK PARALLELISM 3;

CONFIGURE DEFAULT DEVICE TYPE TO DISK;

CONFIGURE CHANNEL 1 DEVICE TYPE DISK FORMAT '/disk1/%d_backups/%U';

CONFIGURE CHANNEL 2 DEVICE TYPE DISK FORMAT '/disk2/%d_backups/%U';

CONFIGURE CHANNEL 3 DEVICE TYPE DISK FORMAT '/disk3/%d_backups/%U';

BACKUP AS COPY DATABASE;

 

案例2:利用channel分散備份負載

RMAN> RUN

{

  ALLOCATE CHANNEL ch1 DEVICE TYPE DISK FORMAT = '/backup/df/%U';

  ALLOCATE CHANNEL ch2 DEVICE TYPE DISK FORMAT = '/backup/cf/%U';

  ALLOCATE CHANNEL ch3 DEVICE TYPE sbt;

  BACKUP AS BACKUPSET # all output files are in backup sets

    # channel ch1 backs up datafiles to /backup/df directory

    DATAFILE 1,2,3,4 CHANNEL ch1

    # channel ch2 backs up control file copy to /backup/cf directory

    CONTROLFILECOPY '/tmp/control01.ctl' CHANNEL ch2;

  BACKUP AS BACKUPSET

    # channel ch3 backs up archived redo logs to tape

    ARCHIVELOG FROM TIME 'SYSDATE-14' CHANNEL ch3;

}

 

案例3:保留一個長期的備份

         如果你配置了保留策略,但是又想長期保留一份特定備份,此時需要使用KEEP選項;這個備份必須是一致性備份,但是不是恢復所需要的備份,它只是做為某一歷史時刻的資料映象儲存; 如果要使用該備份還原資料,必須特定指定;

RMAN> STARTUP MOUNT;  # put database in consistent state

RMAN> BACKUP DATABASE KEEP FOREVER NOLOGS

              TAG 'db_archive_1'; # make long-term consistent backup

 

# mark backup as unavailable in the repository so that RMAN does not attempt to

# restore it unless explicitly specified on the RESTORE command

RMAN> CHANGE BACKUP TAG 'db_archive_1' UNAVAILABLE;

RMAN> SQL 'ALTER DATABASE OPEN';

 

案例4:備份時的壞塊處理

         對資料檔案1的壞塊容忍資料是10,當超過10則會終止備份;

RMAN> RUN

{

  SET MAXCORRUPT FOR DATAFILE 1 TO 10;

  BACKUP DATABASE

    SKIP INACCESSIBLE

    SKIP READONLY

    SKIP OFFLINE;

}

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/16976507/viewspace-2131922/,如需轉載,請註明出處,否則將追究法律責任。

相關文章