rman實用指令碼集

dawn009發表於2014-04-22

一、list命令

1. List 當前RMAN所備份的資料庫:


    1.1. list backup summary; --概述可用的備份
          list incarnation;--彙總查詢

                     --如果備份檔案多的話多用這兩個list命令可以對備份檔案有個總體瞭解。
        B 表示backup
        A 表示Archivelog、 F 表示full backup、 0,1,2 表示incremental level備份
        A 表示可用AVALIABLE、 X 表示EXPIRED

        這個命令可以派生出很多類似命令,例如
        list backup of database summary
        list backup of archivelog all summary
        list backup of tablespace users summary;
        list backup of datafile n,n,n summary

    這些命令可以讓我們對已有的備份檔案有一個整體,直觀的瞭解。


    1.2.list backup by file;--按照檔案型別分別列出
        分別為:資料檔案列表、歸檔日誌列表、控制檔案列表、SPFILE列表

    1.3.list backup;
    這個命令列出已有備份集的詳細資訊。

    1.4.list expired backup;
    列出過期的備份檔案

    1.5.list copy;
    列出copy檔案
    list copy of database;
    list copy of controlfile;
    list copy of tablespace users;
    list copy of datafile n,n,n;
    list copy of archivelog all;
    list copy of archivelog from scn 10000;
    list copy of archivelog until sequence 12;

 


2. List 相關檔案的資訊
    list backup of {archivelog, controlfile, database, datafile, spfile, tablespace};
    list backup of database; --full,incremental,tablespace,datafile

2.1伺服器引數檔案:
    list backup of spfile;


2.2 控制檔案:
    list backup of controlfile;


2.3 資料檔案:
    list backup of datafle n,n,n,n;


2.4表空間:
    list backup of tablespace tablespace_name;--表空間對應的backup

2.5歸檔日誌:
    list backup of archivelog {all, from, high, like, logseq, low, scn, sequence, time, until};
    list backup of archivelog all;
    list backup of archivelog until time 'sysdate-1';
    list backup of archivelog from sequence 10;
    list backup of archivelog until sequence 10;
    list backup of archivelog from scn 10000;
    list backup of archivelog until scn 200000;

    list archivelog from scn 1000;
    list archivelog until scn 2000;
    list archivelog from sequence 10;
    list archivelog until sequence 12;

二、report常用命令總結備忘


report用於判斷資料庫當前可恢復狀態、以及資料庫已有備份的資訊。
最常使用的是report obsolete; report schema;

report {device, need, obsolete, schema, unrecoverable}

report schema;
report obsolete;
report unrecoverable;
report need backup;
report need backup days=3; --報告最近3天內沒有備份的檔案
report need backup redundancy=3; --報告冗餘次數小於3的資料檔案。
report need backup recovery window of 2 days;


report schema;---報告資料庫模式
report obsolete;---報告已丟棄的備份集(配置了保留策略)。

report unrecoverable;---報告當前資料庫中不可恢復的資料檔案(即沒有這個資料檔案的備份、或者該資料檔案的備份已經過期)

report need backup;---報告需要備份的資料檔案(根據條件不同)
report need backup days=3;
        --最近三天沒有備份的資料檔案(如果出問題的話,這些資料檔案將需要最近3天的歸檔日誌才能恢復)
report need backup incremental=3;
        --需要多少個增量備份檔案才能恢復的資料檔案。(如果出問題,這些資料檔案將需要3個增量備份才能恢復)
report need backup redundancy=3;
        --報告出冗餘次數小於3的資料檔案
        --例如資料檔案中包含2個資料檔案system01.dbf和users01.dbf.
        --在3次或都3次以上備份中都包含system01.dbf這個資料檔案,而users01.dbf則小於3次
        --那麼,報告出來的資料檔案就是users01.dbf
        --即,報告出資料庫中冗餘次數小於 n 的資料檔案
report need backup recovery window of 2 days;
        --報告出恢復需要2天歸檔日誌的資料檔案

三、backup常用命令總結備忘
    1.設定備份標記
        backup database tag='full_bak1';
        注:每個標記必須唯一,相同的標記可以用於多個備份只還原最新的備份。

    2.設定備份集大小(一次備份的所有結果為一個備份集,要注意備份集大小)
        backup database maxsetsize=100m tag='datafile1';
        注:maxsetsize限定備份集的大小。所以必須大於資料庫總資料檔案的大小,否則會報錯。
      RMAN-06183: datafile or datafile copy larger than MAXSETSIZE: file# 1 /data/oradata/system01.dbf

    3.設定備份片大小(磁帶或檔案系統限制)
        run {
        allocate channel c1 type disk maxpicecsize 100m format '/data/backup/full_0_%U_%T';
        backup database tag='full_0';
        release channel c1;
        }
        可以在allocate子句中設定每個備份片的大小,以達到磁帶或系統限制。
        也可以在configure中設定備份片大小。
        Configure channel device type disk maxpiecesize 100 m;
        configure channel device type disk clear;

    4.備份集的儲存策略
        backup database keep forever;                  --永久保留備份檔案
        backup database keep until time='sysdate+30'; --儲存備份30天


    5.重寫configure exclude命令
        backup databas noexclude keep forever tag='test backup';

    6.檢查資料庫錯誤
        backup validate database;
        使用RMAN來掃描資料庫的物理/邏輯錯誤,並不執行實際備份。

    7.跳過離線,不可存取或只讀檔案
        backup database skip readonly;
        backup database skip offline;
        backup database skip inaccessible;
        backup database skip readonly skip offline skip inaccessible;

    8.強制備份
        backup database force;

    9.基於上次備份時間備份資料檔案
        1>只備份新增的新資料檔案
            backup database not backed up;
        2>備份"在限定時間週期內"沒有被備份的資料檔案
            backup database not backed up since time='sysdate-2';

    10.備份操作期間檢查邏輯錯誤
        backup check logical database;
        backup validate check logical database;

    11.生成備份副本
        backup database copies=2;

    12.備份控制檔案
        backup database device type disk includ current controlfile;

四、configure常用命令總結備忘


4.1 顯示當前的配置資訊

4.1.1 RMAN> show all;

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 ARCHIVELOG DELETION POLICY TO NONE; # default

CONFIGURE SNAPSHOT CONTROLFILE NAME TO 'D:/ORACLE/PRODUCT/10.2.0/DB_1/DATABASE/S

NCFDBA.ORA'; # default


4.1.2 查詢RMAN設定中非預設值:
    SQL> select name,value from v$rman_configuration;


4.2. 常用的configure選項

4.2.1 儲存策略 (retention policy)

   configure retention policy to recovery window of 7 days;
   configure retention policy to redundancy 5;
   configure retention policy clear;

CONFIGURE RETENTION POLICY TO NONE;
第一種recover window是保持所有足夠的備份,可以將資料庫系統恢復到最近七天內的任意時刻。任何超過最近七天的資料庫備份將被標記為obsolete。
第二種redundancy 是為了保持可以恢復的最新的5份資料庫備份,任何超過最新5份的備份都將被標記為redundancy。它的預設值是1份。

第三四:NONE 可以把使備份保持策略失效,Clear 將恢復預設的保持策略

一般最安全的方法是採用第二種保持策略。


4.2.2 備份最佳化 backup optimization
   configure backup optimization on;
   configure backup optimization off;
   configure backup optimization clear;
預設值為關閉,如果開啟,rman將對備份的資料檔案及歸檔等檔案進行一種最佳化的演算法。

4.2.3 預設裝置 default device type
   configure default device type to disk;
   configure default device type to stb;
   configure default device type clear;
是指定所有I/O操作的裝置型別是硬碟或者磁帶,預設值是硬碟
磁帶的設定是CONFIGURE DEFAULT DEVICE TYPE TO SBT;


4.3.4 控制檔案 controlfile
   configure controlfile autobackup on;
   configure controlfile autobackup format for device type disk to '/cfs01/backup/conf/conf_%F';
   configure controlfile autobackup clear;
   configrue controlfile autobackup format for device type disk clear;
   configrue snapshot controlfile name to '/cfs01/backup/snapcf/scontrofile.snp';

--是配置控制檔案的快照檔案的存放路徑和檔名,這個快照檔案是在備份期間產生的,用於控制檔案的讀一致性。
   configrue snapshot controlfile name clear;


強制資料庫在備份檔案或者執行改變資料庫結構的命令之後將控制檔案自動備份,預設值為關閉。這樣可以避免控制檔案和catalog丟失後,控制檔案仍然可以恢復。


4.3.5 並行數(通道數) device type disk|stb pallelism n;
   configure device type disk|stb parallelism 2;
   configure device type disk|stb clear; --用於清除上面的通道配置
   configure channel device type disk format 'e/:rmanback_%U';
   configure channel device type disk maxpiecesize 100m
   configure channel device type disk rate 1200K
    configure channel 1 device type disk format 'e/:rmanback_%U';
    configure channel 2 device type disk format 'e/:rmanback_%U';
    configure channel 1 device type disk maxpiecesize 100m

配置資料庫裝置型別的並行度。


4.3.6 生成備份副本 datafile|archivelog backup copies
   configure datafile backup copies for device type disk|stb to 3;
   configure archivelog backup copies for device type disk|stb to 3;

--是設定資料庫的歸檔日誌的存放裝置型別
   configure datafile|archivelog backup copies for device type disk|stb clear
   BACKUP DEVICE TYPE DISK DATABASE
    FORMAT '/disk1/backup/%U', '/disk2/backup/%U', '/disk3/backup/%U';


是配置資料庫的每次備份的copy數量,oracle的每一次備份都可以有多份完全相同的複製。


4.3.7 排除選項 exclude
   configure exclude for tablespace 'users';
   configrue exclude clear;

此命令用於將指定的表空間不備份到備份集中, 此命令對只讀表空間是非常有用的。


4.3.8 備份集大小 maxsetsize
   configure maxsetsize to 1G|1000M|1000000K|unlimited;
   configure maxsetsize clear;

4.3.9 其它選項 auxiliary
   CONFIGURE AUXNAME FOR DATAFILE 1 TO '/oracle/auxfiles/aux_1.f';
   CONFIGURE AUXNAME FOR DATAFILE 2 TO '/oracle/auxfiles/aux_2.f';
   CONFIGURE AUXNAME FOR DATAFILE 3 TO '/oracle/auxfiles/aux_3.f';
   CONFIGURE AUXNAME FOR DATAFILE 4 TO '/oracle/auxfiles/aux_4.f';
   -
   CONFIGURE AUXNAME FOR DATAFILE 1 CLEAR;
   CONFIGURE AUXNAME FOR DATAFILE 2 CLEAR;
   CONFIGURE AUXNAME FOR DATAFILE 3 CLEAR;
   CONFIGURE AUXNAME FOR DATAFILE 4 CLEAR;

五、delete命令

          刪除相關的備份集或映象副本的物理檔案,同時將刪除標記DELETE更新到控制檔案,如果使用恢復目錄,則是清除恢復目錄內的備份集。

    RMAN> delete backupset;

    RMAN> delete backupset n;

    RMAN> delete obsolete ;

    RMAN> delete obsolete redundancy 2;

    RMAN> delete noprompt copy;

    RMAN> delete noprompt backupset tag TAG20101016T143521;

    RMAN> delete obsolete recovery window of 7 days;

    RMAN> delete expired backupset;

    RMAN> delete expired copy;

    RMAN> delete expired archivelog all;

   RMAN> delete archivelog until time 'sysdate-5';

六、crosscheck命令

用於檢驗儲存倉庫中的備份集或映象副本,執行改命令後,將更新儲存倉庫中的剛剛校驗的物件狀態,便於後續操作處理。

RMAN備份校驗是的幾種狀態:

Expired:物件不存在於磁碟或磁帶。當一個備份集處於expired狀態,則該備份集中所有的備份片同樣處於expired狀態。

Available:物件處於可用狀態。當一個備份集可用,則改備份集內的所有備份片同樣可用。

Unavailable:物件處於不可用狀態。當一個備份可不用,則改備份集內的所有備份片同樣不可用

    RMAN> crosscheck backupset;   

    RMAN> crosscheck copy;                  

    RMAN> crosscheck backup of controlfile;    

    RMAN> crosscheck backup of archivelog all;

    RMAN> crosscheck backup of datafile 1,2;  

    RMAN> crosscheck backup of tablespace sysaux,system;                     

    RMAN> crosscheck backup completed between '13-OCT-10' and '23-OCT-10';

    RMAN> crosscheck backupset 1067,1068; 

七、validate命令

       驗證一個備份集內的資料的完整性。RMAN掃描備份集得所有備份片,並檢查校驗和,驗證其內容是否可以成功還原,validate是較crosscheck更高一級的驗證操作,crosscheck僅僅是檢查備份集的頭部資訊,檢驗檔案的存在性,validate驗證資料的有效性。

RMAN> validate backupset [check logical]

八、change

1、改變備份集狀態
      可用CHANGE BACKUPSET .. UNAVAILABLE/AVAILABLE 來改變一個備份集的狀態。
      RMAN>CHANGE BACKUPSET 22 UNAVAILABLE

 2、改變映像副本狀態
      資料檔案:CHANGE DATAFILECOPY .. AVAILABLE/UNAVAILABLE
      控制檔案:CHANGE CONTROLFILECOPY .. AVAILABLE/UNAVAILABLE
      歸檔日誌:CHANGE ARCHIVELOG .. AVAILABLE/UNAVAILABLE
      例如:
       RMAN>CHANGE DATAFILECOPY 'D:\BACKUP\DEMO_37.BAK' UNAVAILABLE;
3、建立長期備份
      長期備份是指被長期保留的備份檔案,使用長期備份的目的是為了可以將資料庫恢復到過去的特定時間點。當社頂了長期備份之後,RMAN會從裝置冗餘策略中
      免除該備份檔案,也就是說,長期備份檔案不會被標記為陳舊備份。
      命令:CHANGE .. KEEP/NOKEEP
      (1)使備份集156永久保留
         RMAN>CHANGE BACKUPSET 156 KEEP FOREVER LOGS;
      (2)使備份集198保留60天
         RMAN>CHANGE BACKUPSET 198 KEEP UNTIL TIME 'SYSDATE+60' LOGS;
      (3)免除備份集156的保留期限
         RMAN>CHANGE BACKUPSET 156 NOKEEP

 

備註:整理自網路

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

相關文章