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'

相关文章
相关标签/搜索