oracle 备份恢复篇(一)---rman

一,rman介绍

  RMAN(Recovery Manager)是随Oracle服务器软件一同安装的工具软件,它可以用来备份和恢复数据库文件、归档日志和控制文件,用来执行完全或不完全的数据库恢复。与传统工具相比,RMAN具有独特的优势:跳过未使用的数据块。当备份一个RMAN备份集时,RMAN不会备份从未被写入的数据块,而传统的方式无法获知那些是未被使用的数据块。RMAN使用Oracle特有的二进制压缩模式,与传统备份的压缩方式相比,能够最大程度地压缩数据块中的一些典型数据。

二,rman 优点(缺点)

  1.优点

  (1) 支持增量备份:传统的exp与expdp备份工具,只能实现一个完整备份而不能增量备份,RMAN采用备份级别实现增量备份,在一个完整的备份基础上采用增量备份可以大大减少备份的数量;

  (2) 自动管理备份文件:RMAN备份的数据是RMAN自动管理的,包括文件名字,备份文件存储目录等;

  (3) 自动化备份与恢复:在备份与恢复操作时,使用简单的指令就可以实现备份与恢复,执行过程完全有RMAN维护。

  (4) 不产生重做信息: RMAN联机备份不产生重做信息。

  (5) 支持映像复制: 使用RMAN可以实现映像复制,映像以操作系统的文件格式存在,这种复制类似于用户管理的脱机备份方式。

  (6) 备份的数据文件压缩处理: RMAN提供一个参数,说明是否对备份文件进行压缩,压缩的备份文件以二进制文件格式存在,可以减少备份文件的存储空间。

  (7) 备份文件有效性检查功能: 可以在备份之后恢复检测备份文件是否可用,避免无效恢复操作。

  2,缺点

  (1)备份过程不透明;
  (2)Rman备份的数据只有使用Rman才能恢复;
  (3) 如果管理网络上的多个数据库,通常会使用一个单独的数据库来作为Rman恢复目录,如果这个数据库出现故障,那么所作的所有数据库备份也都不能使用,除非恢复这个数据库。那么为了保证这个用于存放Rman恢复目录的数据库出现故障,通常还要对这个数据库使用OS命令备份。
  (4) 如果有一个数据库需要备份,那么备份信息会纪录在控制文件中,所以控制文件不许多处备份,不能丢失。
  (5) Rman备份不能备份REDO LOG FILES,参数文件(init.ora),口令文件,操作系统文件,以及OFFLINE的文件。

三,rman 名词

  Backup sets ( 备份集合).

    备份集合有下面的特性:
    包括一个或多个数据文件或归档日志
    以oracle专有的格式保存
    有一个完全的所有的备份片集合构成
    构成一个完全备份或增量备份

  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'

  

猜你喜欢

转载自www.cnblogs.com/kingle-study/p/10450280.html