Recovery Manager(RMAN)是一种用于备份(backup)、还原(restore)和恢复(recover)
数据库的Oracle 工具.RMAN只能用于ORACLE8或更高的版本中。它能够备份整个数据
库或数据库部件,如表空间、数据文件、控制文件、归档文件以及Spfile参数文件。RMAN
也允许您进行增量数据块级别的备份,增量RMAN备份是时间和空间有效的,因为他们只备
份自上次备份以来有变化的那些数据块。而且,通过RMAN提供的接口,第三方的备份与恢
复软件如veritas将提供更强大的备份与恢复的管理功能。
通过RMAN,也提供了其它更多功能,如数据库的克隆、采用RMAN建立备用数据库、
利用RMAN备份与移动裸设备(RAW)上的文件等工作将变得更方便简单。9i的RMAN通过
增强的自动配置与管理功能,以及特有的块级别的恢复,将使备份与恢复工作变得更加快捷
与完美。9i的RMAN有如下特征特性:
·自动的备份与恢复
·方便的备份归档日志
·自动检测新的数据文件
·支持增量备份
·最大限度的减少备份与恢复的错误
·减少恢复的时间
·在热备份中不会产生额外的redo日志
·腐烂数据块的自动检测·并行的备份与恢复操作
·在线备份时,表空间不用置于备份模式
可以看到,在以上的一些特性中,显示了RMAN强大的功能与好处,以上功能的实现,
是因为RMAN是块级别的备份与恢复,备份与恢复发生在数据库块级别,可以通过比较数据
块而获得一致性的数据块,可以避免备份没有用过的块,可以检验块是否腐烂等块级别的问
题。

在使用rman备份分为使用恢复目录和不使用恢复目录两种形式,如果使用恢复目录,那恢复目
录最好建另外一台机器上才更有意义,因为如果同生产库建在一起了,当此机器出现故障时,恢
复目录数据库可以也无法使用,那么rman就不能得到先前的备份信息了,也就不能进行恢复了。
   下面介绍不使用恢复目录的备份与恢复方法,由于没有使用恢复目录那么相关的备份信息将保
存在控制文件中,所以配置rman为自动备份控制文件,每次执行backup时就自动备份一个控制文
件,默认保存在/opt/ora9/product/9.2.0.4/dbs/ 也可更改备份位置。
启动控制文件自动备份configure controlfile autobackup on;
设置自动备份控制文件格式configure controlfile autobackup format for device type disk 
to '/backup/cf_%F'
设置备份优化configure backup optimization on;
自动备份控制文件默认保存路径/opt/ora9/product/9.2.0.4/dbs/

连连接数据库
rman>connect target / 或 rman target /
备份数据库
RMAN> run {
2> allocate channel dev1 type disk;
3> backup
4> format '/tmp/hotbak/bak'
5> database;
6> release channel dev1;
7> }
备份表空间
RMAN> run {
2> allocate channel dev1 type disk;
3> backup
4> format '/tmp/hotbak/tablespace_users'
5> tablespace users;
6> release channel dev1;
7> }

备份单独数据文件
RMAN> run {
2> allocate channel dev1 type disk;
3> backup
4> format '/tmp/hotbak/datafile_users'
5> datafile '/opt/ora9/oradata/oradb/users01.dbf';
6> release channel dev1;
7> }

备份控制文件
RMAN> run {
2> allocate channel dev1 type disk; 
3> backup
4> format '/tmp/hotbak/controlfile'
5> (current controlfile);
6> release channel dev1;
7> }

恢复表空间
rman target / nocatalog
RMAN> startup mount
RMAN> restore tablespace users;
RMAN> recover tablespace users;
RMAN> exit

Datafile recovery 数据文件恢复
        RMAN> run {
       2> allocate channel dev1 type disk;
       3> sql "alter tablespace users offline immediate";
       4> restore datafile 4;
       5> recover datafile 4;
       6> sql "alter tablespace users online";
       7> release channel dev1;
       8> }
恢复控制文件

rman>startup nomount;
rman>set dbid=2347671489
rman>restore controlfile from autobackup 或 rman>restore controlfile from 
'/opt/arch/ct_c-2347671489-20060630-00'
rman>alter database open resetlogs;
RMAN> startup mount;
恢复数据库
RMAN> restore database;
RMAN> recover database; 
RMAN>alter database open resetlogs;
恢复完毕。

上面从恢复控制文件开始,讲述的是,只要你有数据库的备份文件和备份时控制文件,才可以
进行恢复,就算重装也可以。
再说几个rman常用命令:
list backup 查看备份信息
List backup summary 查看备份汇总信息
List backup of datafile ‘file name’
list incarnation of database;   查看具体的备份信息
Crosscheck命令
检查磁盘或磁带上的备份或拷贝是否正确,并更新备份或者拷贝的状态
Crosscheck backup;
Crosscheck archivelog all;
Delete [noprompt] expired backup命令删除过期备份
也可以用List来查看相应的报告
LIST EXPIRED BACKUP;
LIST EXPIRED BACKUP SUMMARY;
Delete 命令
Delete命令可以用来删除指定的备份或者用来删除废弃或者是过期的备份集
如删除指定的备份集与备份片
RMAN> DELETE BACKUPPIECE 101;
RMAN> DELETE CONTROLFILECOPY '/tmp/control01.ctl';
RMAN> DELETE BACKUP OF TABLESPACE users DEVICE TYPE sbt;
删除过期或者废弃了的备份
RMAN> DELETE EXPIRED BACKUP;
RMAN> DELETE NOPROMPT OBSOLETE;
RMAN> DELETE OBSOLETE REDUNDANCY = 3;
RMAN> DELETE OBSOLETE RECOVERY WINDOW OF 7 DAYS;
删除指定的备份归档
RMAN> DELETE NOPROMPT ARCHIVELOG UNTIL SEQUENCE = 300;
再贴几个备份脚本:
全库备份脚本:
#!/bin/sh
date=`date +%Y%m%d`
export ORACLE_BASE=/opt/ora9 
export ORACLE_HOME=/opt/ora9/product/9.2.0.4 
export PATH=$PATH:$ORACLE_HOME/bin:$ORACLE_HOME/Apache/Apache/bin 
export ORACLE_OWNER=oracle 
export ORACLE_SID=oradb 
export ORACLE_TERM=xterm 
export LD_ASSUME_KERNEL=2.4.19 
export THREADS_FLAG=native 
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$ORACLE_HOME/lib 
export NLS_LANG="AMERICAN_AMERICA.ZHS16GBK" 
export ORA_NLS33=$ORACLE_HOME/ocommon/nls/admin/data 
/opt/ora9/product/9.2.0.4/bin/rman target / <<EOF
run {
backup
tag 'dbfull'
format '/tmp/dbfull%u_%s_%p_%T'
database;
}
exit;
EOF
rm /opt/arch/* -rf
下面为增量备份脚本,增量备份分为0级,1级,2级,0级为基础备份,1级为0级增量,恢复时
恢复0级,再恢复1级,oracle9i增量备份也要进行全库扫描,oracle10G在这方面有专门的改善。
增量备份的好处是减小备份文件大小,但同样也增加恢复时的时间和复杂度,我更加适合数据量
特别的数据库。
    
0级备份脚本
#!/bin/sh
date=`date +%Y%m%d`
export ORACLE_BASE=/opt/ora9 
export ORACLE_HOME=/opt/ora9/product/9.2.0.4 
export PATH=$PATH:$ORACLE_HOME/bin:$ORACLE_HOME/Apache/Apache/bin 
export ORACLE_OWNER=oracle 
export ORACLE_SID=oradb 
export ORACLE_TERM=xterm 
export LD_ASSUME_KERNEL=2.4.19 
export THREADS_FLAG=native 
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$ORACLE_HOME/lib 
export NLS_LANG="AMERICAN_AMERICA.ZHS16GBK" 
export ORA_NLS33=$ORACLE_HOME/ocommon/nls/admin/data 
/opt/ora9/product/9.2.0.4/bin/rman target / <<EOF
run {
backup
incremental level 0
tag 'db0'
format '/tmp/db0%u_%s_%p_%T'
database;
#plus archivelog
#delete all input;
}
exit;
EOF
rm /opt/arch/* -rf

1级备份
#!/bin/sh
date=`date +%Y%m%d`
export ORACLE_BASE=/opt/ora9 
export ORACLE_HOME=/opt/ora9/product/9.2.0.4 
export PATH=$PATH:$ORACLE_HOME/bin:$ORACLE_HOME/Apache/Apache/bin 
export ORACLE_OWNER=oracle 
export ORACLE_SID=oradb 
export ORACLE_TERM=xterm 
export LD_ASSUME_KERNEL=2.4.19 
export THREADS_FLAG=native 
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$ORACLE_HOME/lib 
export NLS_LANG="AMERICAN_AMERICA.ZHS16GBK" 
export ORA_NLS33=$ORACLE_HOME/ocommon/nls/admin/data 
/opt/ora9/product/9.2.0.4/bin/rman target / <<EOF
run{
backup
incremental level 1
tag 'db1'
format '/tmp/db1%u_%s_%p_%T'
database;
#plus archivelog
#delete all input;
}
exit;
EOF
如果出现故障,恢复的方法参考上面的就可以了,把相应该的备份文件控制文件和归档日志都
放在相对的位置就可以进恢复了。

1、切换服务器归档模式,如果已经是归档模式可跳过此步:    %sqlplus /nolog (启动sqlplus)
    SQL> conn / as sysdba (以DBA身份连接数据库)
    SQL> shutdown immediate; (立即关闭数据库)
    SQL> startup mount (启动实例并加载数据库,但不打开)
    SQL> alter database archivelog; (更改数据库为归档模式)
    SQL> alter database open; (打开数据库)
    SQL> alter system archive log start; (启用自动归档)
    SQL> exit (退出)
    2、连接:
    %rman [email=target=rman/rman@mydb]target=rman/rman@mydb[/email] (启动恢复管理器)
    3、基本设置:
    RMAN> configure default device type to disk; (设置默认的备份设备为磁盘)
    RMAN> configure device type disk parallelism 2; (设置备份的并行级别,通道数)
    RMAN> configure channel 1 device type disk fromat '/backup1/backup_%U'; (设置备份的文件格式,只适用于磁盘设备)
    RMAN> configure channel 2 device type disk fromat '/backup2/backup_%U'; (设置备份的文件格式,只适用于磁盘设备)
    RMAN> configure controlfile autobackup on; (打开控制文件与服务器参数文件的自动备份)
    RMAN> configure controlfile autobackup format for device type disk to '/backup1/ctl_%F'; (设置控制文件与服务器参数文件自动备份的文件格式)
    4、查看所有设置:
    RMAN> show all
    5、查看数据库方案报表:
    RMAN> report schema;
    6、备份全库:
    RMAN> backup database plus archivelog delete input; (备份全库及控制文件、服务器参数文件与所有归档的重做日志,并删除旧的归档日志)
    7、备份表空间:
    RMAN> backup tablespace system plus archivelog delete input; (备份指定表空间及归档的重做日志,并删除旧的归档日志)
    8、备份归档日志:
    RMAN> backup archivelog all delete input;
    9、复制数据文件:
    RMAN> copy datafile 1 to '/oracle/dbs/system.copy';
    10、查看备份和文件复本:
    RMAN> list backup;
    11、验证备份:
    RMAN> validate backupset 3;
    12、从自动备份中恢复服务器参数文件:
    RMAN> shutdown immediate; (立即关闭数据库)
    RMAN> startup nomount; (启动实例)
    RMAN> restore spfile to pfile '/backup1/mydb.ora' from autobackup; (从自动备份中恢复服务器参数文件)
    13、从自动备份中恢复控制文件:
    RMAN> shutdown immediate; (立即关闭数据库)
    RMAN> startup nomount; (启动实例)
    RMAN> restore controlfile to '/backup1' from autobackup; (从自动备份中恢复控制文件)

13、恢复和复原全数据库:
    RMAN> shutdown immediate; (立即关闭数据库)
    RMAN> exit (退出)
    %mv /oracle/dbs/tbs_12.f /oracle/dbs/tbs_12.bak (将数据文件重命名)
    %mv /oracle/dbs/tbs_13.f /oracle/dbs/tbs_13.bak (将数据文件重命名)
    %mv /oracle/dbs/tbs_14.f /oracle/dbs/tbs_14.bak (将数据文件重命名)
    %mv /oracle/dbs/tbs_15.f /oracle/dbs/tbs_15.bak (将数据文件重命名)
    %rman [email=target=rman/rman@mydb]target=rman/rman@mydb[/email] (启动恢复管理器)
    RMAN> startup pfile=/oracle/admin/mydb/pfile/initmydb.ora (指定初始化参数文件启动数据库)
    RMAN> restore database; (还原数据库)
    RMAN> recover database; (恢复数据库)
    RMAN> alter database open; (打开数据库)
    14、恢复和复原表空间:
    RMAN> sql 'alter tablespace users offline immediate'; (将表空间脱机)
    RMAN> exit (退出恢复管理器)
    %mv /oracle/dbs/users01.dbf /oracle/dbs/users01.bak (将表空间重命名)
    %rman [email=target=rman/rman@mydb]target=rman/rman@mydb[/email] (启动恢复管理器)
    RMAN> restore tablespace users; (还原表空间)
    RMAN> recover tablespace users; (恢复表空间)
    RMAN> sql 'alter tablespace users online'; (将表空间联机)
    15、增量备份与恢复:
    第一天的增量基本备份:
    RMAN> backup incremental level=0 database plus archivelog delete input;
    第二天的增量差异备份:
    RMAN> backup incremental level=2 database plus archivelog delete input;
    第三天的增量差异备份:
    RMAN> backup incremental level=2 database plus archivelog delete input;
    第四天的增量差异备份:
    RMAN> backup incremental level=1 database plus archivelog delete input;
    第五天的增量差异备份:
    RMAN> backup incremental level=2 database plus archivelog delete input;
    第六天的增量差异备份:
    RMAN> backup incremental level=2 database plus archivelog delete input;
    第七天的增量差异备份:
    RMAN> backup incremental level=0 database plus archivelog delete input;
    增量恢复:
    RMAN> shutdown immediate;
    RMAN> exit
    %mv /oracle/dbs/tbs_12.f /oracle/dbs/tbs_12.bak
    %mv /oracle/dbs/tbs_13.f /oracle/dbs/tbs_13.bak
    %mv /oracle/dbs/tbs_14.f /oracle/dbs/tbs_14.bak
    %mv /oracle/dbs/tbs_15.f /oracle/dbs/tbs_15.bak
    %rman [email=target=rman/rman@mydb]target=rman/rman@mydb[/email]
    RMAN> startup pfile=/oracle/admin/mydb/pfile/initmydb.ora
    RMAN> restore database;
    RMAN> recover database;
    RMAN> alter database open.(e129)on.htm
    simulator/doc/license_keys.htm
    simulator/doc/sdk.style.css
    simulator/doc/davehitzforeword.htm
    simulator/doc/faq.htm
    simulator/doc/troubleshooting.htm
    simulator/license.htm
    simulator/readme.htm
    simulator/runsim.sh
    simulator/setup.sh
    simulator/sim.tgz

分类: OralceRac
本文转自einyboy博客园博客,原文链接:http://www.cnblogs.com/einyboy/archive/2012/05/21/2511618.html

rman备份恢复总结相关推荐

  1. ORACLE11G 将dataguard的rman备份恢复到测试环境的单机oracle中的详细过程

    2019独角兽企业重金招聘Python工程师标准>>> ORACLE11G 将dataguard的rman备份恢复到测试环境的单机oracle中的详细过程 原创 2015年08月21 ...

  2. oracle rman备份整库,RMAN备份恢复整个库

    RMAN备份恢复整个库 1 查看历史备份集 $ rman target / RMAN> list backup; 说明与资料档案库中的任何备份都不匹配 上述结果说明之前没有备份过 2 备份整个库 ...

  3. RMAN备份恢复报错 ORA-19573: cannot obtain exclusive enqueue for datafile 5

    RMAN备份恢复报错 ORA-19573: cannot obtain exclusive enqueue for datafile 5 用vi 编辑了一个数据文件 ,导致下面的错误: 验证还原 RM ...

  4. RMAN备份恢复性能优化--MAXSETSIZE, MAXPIECESIZE, FILESPERSET, SECTION SIZE等

    RMAN备份恢复性能优化--MAXSETSIZE, MAXPIECESIZE, FILESPERSET, SECTION SIZE, MAXOPENFILES等 ㈠ 发现问题 RMAN在做备份.恢复时 ...

  5. oracle rman恢复表空间,rman备份恢复表空间

    rman备份恢复表空间 1 创建数据表空间 SQL> create tablespace test_tablespace logging datafile '/u01/app/oracle/or ...

  6. Oracle 运维篇+RAC集群转单实例/RMAN异机恢复/RMAN迁移/RMAN备份恢复操作概要

    说明:本文为Oracle RAC集群转单实例/RMAN异机恢复/RMAN迁移/RMAN备份恢复操作概要方便用户查阅 温馨提示:如果您发现本文哪里写的有问题或者有更好的写法请留言或私信我进行修改优化 说 ...

  7. 通过 RMAN备份恢复搭建Oracle DG

    平时都是通过RMAN DUPLICATE来搭建dg,今天遇到了问题,只能改换方法. 一. 奇怪的问题 执行RMAN DUPLICATE时发现数据文件传输十分之慢,在约250M/s的磁盘上传输速度居然只 ...

  8. oracle rman catalogo,ORACLE 11g RMAN备份恢复--catalog

    rman catalog是为数据备份恢复时,使用恢复目录catalog,与nocatalog的不同是,nocatalog将备份相关的信息记录在了控制文件中,而catalog将备份信息记录在了恢复目录中 ...

  9. oracle 9i故障恢复,Oracle9i rman备份恢复总结

    Recovery Manager(RMAN)是一种用于备份(backup).还原(restore)和恢复(recover)数据库的Oracle 工.RMAN只能用于ORACLE8或更高的版本中.它能够 ...

最新文章

  1. Social regularizations
  2. 局部加权回归、逻辑斯蒂回归、感知器算法—斯坦福ML公开课笔记3
  3. Unresolved compilation problem: String liter
  4. 图像-摄像头驱动流程
  5. FFMPEG解码多线程
  6. Ajax 文件上传之PHP心得
  7. Ubuntu12.04编译Android4.0.1源码全过程-----附wubi安装ubuntu编译android源码硬盘空间不够的问题解决
  8. VC++注册,卸载OCX控件,以及判断是否注册
  9. 如何写出让同事膜拜的漂亮代码?
  10. laravel redis_解析laravel之redis简单模块操作
  11. 怎么改java游戏_jar游戏按键修改,怎么修改jar游戏按键
  12. 浏览器清除缓存快捷键
  13. 注射php,手工注射php学习
  14. Elsevier 投稿各种状态总结
  15. 本以为能躺着进华为,结果陆续收到京东/滴滴/爱奇艺offer的我迷茫了
  16. linux6.5 xmanager配置,CentOS6.5安装Xmanager远程桌面
  17. uva 571 - Jugs
  18. 【数字经济】概念、技术、实践:中国 500强泰康集团背后的数据驱动
  19. 廖雪峰Git简明教程整理
  20. 机器人几何参数误差模型

热门文章

  1. python mvc web_浅谈python_web的MVC和MTV
  2. java web临时文件删除_什么时候删除Java临时文件?
  3. 重庆市计算机专业高考试题,今年重庆高校毕业生达21.1万人 计算机类专业需求大...
  4. no scp yes 不提示_linux脚本实现scp命令自动输入密码和yes/no等确认信息
  5. Matlab-离散事件系统仿真实验
  6. 计算机文献检索综合性实验报告,文献检索综合性实验报告模板.doc
  7. mysql包1166_mysql 错误:1166 解决办法
  8. K - 老鼠走迷宫(DFS)
  9. 数据结构实验之链表五:单链表的拆分_JAVA
  10. 8.分布式数据库HBase第4部分