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 / <

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 / <

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 / <

run{

backup

incremental level 1

tag 'db1'

format '/tmp/db1%u_%s_%p_%T'

database;

#plus archivelog

#delete all input;

}

exit;

EOF

如果出现故障,恢复的方法参考上面的就可以了,把相应该的备份文件控制文件和归档日志都

放在相对的位置就可以进恢复了。

oracle 9i故障恢复,Oracle9i 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. oracle rman恢复表空间,rman备份恢复表空间

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

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

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

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

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

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

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

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

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

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

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

  9. oracle9i 恢复数据库,oracle 9i使用闪回查询恢复数据库误删问题

    如果用户误删/更新了数据后,作为用户并没有什么直接的方法来进行恢复,他们必须求助DBA来对数据库进行恢复,到了Oracle9i,这一个难堪局面有所改善.Oracle 9i中提供了一项新的技术手段--闪 ...

最新文章

  1. Object-c实现各种排序算法 (汇总)
  2. 一步一步写算法(检查表)
  3. .Net 转战 Android 4.4 日常笔记(3)--目录结构分析
  4. terminal怎么运行c语言文件,在mac电脑的terminal里该如何运行c语言
  5. sql 执行顺序_10个简单步骤,完全理解SQL
  6. Android开发之ApiCloud模块开发的注意事项
  7. java的概率的程序_java实现一个抽奖概率类
  8. Vista,Windows7中给IIS7添加PHP支持
  9. 银行业数据治理之数据资产管理
  10. 深度学习入门笔记(四):神经网络
  11. vue-cli 上传图片上传到OSS(阿里云)
  12. 电脑键盘灯怎么打开_电脑开机后黑屏键盘灯也不亮,教你一招搞定 建议收藏...
  13. 超好用的录屏软件 captura
  14. h3c交换机服务器无响应,华为(H3C)交换机版本升级遇到的问题总结
  15. 图层蒙版和图层剪贴路径_PS图层蒙版与剪贴蒙版综合应用——水杯里的树
  16. 开启霍比特人之意外内核优化旅行 -- 专栏序言
  17. 熟练知道eclipse中outline里各个图标的含义
  18. BC5-MM、CSR867x的DFU更新流程之二:dfu文件转bin文件
  19. 4g网络什么时候淘汰_4G网络即将被淘汰?4G手机:我还没过时
  20. php读取目录中文文件名乱码解决方法

热门文章

  1. python中的*args和**kwargs(* 与 **)
  2. Android -- SEGV_MAPERR,SEGV_ACCERR
  3. Python中容易忽视的知识点
  4. Desktop imags
  5. 团队作业9——展示博客(Beta版本)
  6. (笔记)Mysql命令show databases:显示所有数据库
  7. MongoDB运行状态、性能监控,分析
  8. 一条命令关掉centos所有不必要的服务和端口号
  9. [USACO09FEB]改造路Revamping Trails 分层最短路 Dijkstra BZOJ 1579
  10. 8.15 号 程序 循环结构作业的代码