oracle 備份恢復篇(一)---rman

一,rman介紹

  RMAN(Recovery Manager)是隨Oracle服務器軟件一同安裝的工具軟件,它能夠用來備份和恢復數據庫文件、歸檔日誌和控制文件,用來執行徹底或不徹底的數據庫恢復。與傳統工具相比,RMAN具備獨特的優點:跳過未使用的數據塊。當備份一個RMAN備份集時,RMAN不會備份從未被寫入的數據塊,而傳統的方式沒法獲知那些是未被使用的數據塊。RMAN使用Oracle特有的二進制壓縮模式,與傳統備份的壓縮方式相比,可以最大程度地壓縮數據塊中的一些典型數據。sql

二,rman 優勢(缺點)

  1.優勢

  (1) 支持增量備份:傳統的exp與expdp備份工具,只能實現一個完整備份而不能增量備份,RMAN採用備份級別實現增量備份,在一個完整的備份基礎上採用增量備份能夠大大減小備份的數量;數據庫

  (2) 自動管理備份文件:RMAN備份的數據是RMAN自動管理的,包括文件名字,備份文件存儲目錄等;服務器

  (3) 自動化備份與恢復:在備份與恢復操做時,使用簡單的指令就能夠實現備份與恢復,執行過程徹底有RMAN維護。網絡

  (4) 不產生重作信息: RMAN聯機備份不產生重作信息。oracle

  (5) 支持映像複製: 使用RMAN能夠實現映像複製,映像以操做系統的文件格式存在,這種複製相似於用戶管理的脫機備份方式。app

  (6) 備份的數據文件壓縮處理: RMAN提供一個參數,說明是否對備份文件進行壓縮,壓縮的備份文件以二進制文件格式存在,能夠減小備份文件的存儲空間。工具

  (7) 備份文件有效性檢查功能: 能夠在備份以後恢復檢測備份文件是否可用,避免無效恢復操做。spa

  2,缺點

  (1)備份過程不透明;
  (2)Rman備份的數據只有使用Rman才能恢復;
  (3) 若是管理網絡上的多個數據庫,一般會使用一個單獨的數據庫來做爲Rman恢復目錄,若是這個數據庫出現故障,那麼所做的全部數據庫備份也都不能使用,除非恢復這個數據庫。那麼爲了保證這個用於存放Rman恢復目錄的數據庫出現故障,一般還要對這個數據庫使用OS命令備份。
  (4) 若是有一個數據庫須要備份,那麼備份信息會紀錄在控制文件中,因此控制文件不準多處備份,不能丟失。
  (5) Rman備份不能備份REDO LOG FILES,參數文件(init.ora),口令文件,操做系統文件,以及OFFLINE的文件。
操作系統

三,rman 名詞

  Backup sets ( 備份集合).

    備份集合有下面的特性:
    包括一個或多個數據文件或歸檔日誌
    以oracle專有的格式保存
    有一個徹底的全部的備份片集合構成
    構成一個徹底備份或增量備份3d

  Backup pieces備份片

    一個備份集由若干個備份片組成。每一個備份片是一個單獨的輸出文件。一個備份片的大小是有限制的;若是沒有大小的限制,備份集就只由一個備份片構成。備份片的大小不能大於使用的文件系統所支持的文件長度的最大值。

  Imagecopies.鏡像備份

    鏡像備份是獨立文件(數據文件、歸檔日誌、控制文件)的備份。它很相似操做系統級的文件備份。它不是備份集或備份片,也沒有被壓縮。

  Full backupsets.全備份集合

    全備份是一個或多個數據文件中使用過的數據塊的的備份。沒有使用過的數據塊是不被備份的,也就是說,oracle進行備份集合的壓縮。

  Incremental backupsets.增量備份集合

    增量備份是指備份一個或多個數據文件的自從上一次同一級別的或更低級別的備份以來被修改過的數據塊。與徹底備份相同,增量備份也進行壓縮。

  Filemultiplexing.

    不一樣的多個數據文件的數據塊能夠混合備份在一個備份集中。

  Recovery catalogresyncing.恢復目錄同步

    使用恢復管理器執行backup、copy、restore或者switch命令時,恢復目錄自動進行更新,可是有關日誌與歸檔日誌信息沒有自動記入恢復目錄。須要進行目錄同步。使用resynccatalog命令進行同步。

四,rman 全備腳本

  01,單機全備

    !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!根據本身實際內容作相應修改!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

export TMP=/tmp export TMPDIR=$TMP export ORACLE_BASE=/u01 export ORACLE_SID=prod export ORACLE_HOME=/u01/oracle/db_1 export ORACLE_TERM=xterm export PATH=$PATH:$ORACLE_HOME/bin:$HOME/bin export LANG=en_US rman target / log /u01/backup/rman_full.log append<<EOF run {allocate channel c1 type disk; allocate channel c2 type disk; backup database filesperset 4 format '/u01/backup/full_%d_%T_%s_%p'; sql 'alter system archive log current'; sql 'alter system archive log current'; sql 'alter system archive log current'; backup archivelog all format '/u01/backup/arch_%d_%T_%s_%p' delete input; backup current controlfile format '/u01/backup/ctl_%d_%T_%s_%p'; crosscheck backup; crosscheck archivelog all; delete noprompt obsolete; delete noprompt expired backup; delete noprompt expired archivelog all; } EOF

  02,單機歸檔備份

export ORACLE_BASE=/u01/app/oracle export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/db_1 export ORACLE_SID=orcl export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK export PATH=$ORACLE_HOME/bin:$PATH rman target / log /u01/backup/rman_arch.log append<<EOF run {allocate channel c1 type disk; allocate channel c2 type disk; sql 'alter system archive log current'; sql 'alter system archive log current'; sql 'alter system archive log current'; backup archivelog all format '/u01/backup/arch_%d_%T_%s_%p' delete input; backup current controlfile format '/u01/backup/ctl_%d_%T_%s_%p'; crosscheck backup; crosscheck archivelog all; delete noprompt expired backup; delete noprompt expired archivelog all; } EOF

  03,RAC全備

run { allocate channel c1 device type disk connect 'sys/Oracle@rac1'; allocate channel c2 device type disk connect 'sys/Oracle@rac2'; backup database database format '/backup/rmanbak/db_full_%T_%d_%t_%s_%p_bak0'; sql 'alter system archive log current'; backup archivelog all format '/backup/rmanbak/arch_%T_%d_%t_%s_%p_bak0' delete input; backup current controlfile format '/backup/rmanbak/controlfile_%T_%d_%t_%s_%p_bak'; backup spfile format '/backup/rmanbak/spfile_%T_%d_%t_%s_%p_bak'; crosscheck backup; crosscheck archivelog all; delete noprompt obsolete; delete noprompt expired backup; delete noprompt expired archivelog all; release channel c1; release channel c2; }

 五,rman 基礎命令查看

  01,列出詳細備份信息

    備份集(Backup Sets),鏡像備份(image copies),proxy copies的信息。

list backup;

  02,列出信息備份信息:

      備份集(Backup Sets),proxy copies信息

list backupset;

  03,列出全部數據文件的備份信息

list backup of database;

  04,列出特定表空間的全部數據文件備份集

  05,列出指定文件的備份信息

  查看文件對應的id號.(sql裏面查)

查看備份信息

或者直接寫文件查看:

list backup of datafile '/data/oradata/prod/system01.dbf';

  06,按備份類型列出備份

list backup by file;

  07,列出控制文件信息

list backup of controlfile;

  08,查看已備份的歸檔日誌信息

list backup of archivelog all;

  09,其餘

    列出spfile文件信息

RMAN> list backup of archivelog from scn 22727871375; RMAN> list backup of archivelog until scn 22727813497; RMAN> list backup of archivelog from scn 22727031113 until scn 22727268951; RMAN> list backup of archivelog from logseq 25432; RMAN> list backup of archivelog until logseq 25432; RMAN> list backup of archivelog from logseq 25426 until logseq 25428;

    列出全部的歸檔日誌

      RMAN> list archivelog all;

    列出全部失效的歸檔日誌

      RMAN>list expired archivelog all;

    列出指定表空間的備份信息

      RMAN> list copy of tablespace 'SYSTEM';

    列出備份的映像副本信息

      #lists only disk copies

      RMAN> list copy;

    列出過時備份信息(backup sets, proxy copies, and image copies)。

      Displays backup sets, proxy copies, and image copies marked in the repository as EXPIRED, that is, "not found."

      RMAN> list expired backup;

    列出過時備份信息(backup sets, proxy copies)

      RMAN> list expired backupset;

    按備份類型列出過時備份信息

      RMAN> list expired backup by file;

    概述可用的備份

      RMAN> list backup summary;

    概述過時的備份

      RMAN> list expired backup summary;

    列出某個備份集的信息

      RMAN> list backupset 59139;

    列出數據文件映像副本

      RMAN> list copy of datafile '/u01/oradata/system01.dbf';

    列出控制文件的備份信息

      RMAN> list backup of controlfile;

    列出備份集中TAGE的備份片信息

      RMAN> list backupset tage 'TAG20160811T000724'

相關文章
相關標籤/搜索