(转自:http://blog.chinaunix.net/uid-14779297-id-1988309.html)

RMAN的基本概念

Target Database:就是需要RMAN对其进行备份与恢复的数据库,RMAN 可以备份数据文件,控制文件,归档日志,spfile.(注意:RMAN不能用于备份联机日志、初始化参数文件和口令文件)。

recovery catalog:用来保存备份与恢复信息的一个数据库,不建议创建在目标数据库上。RMAN 利用恢复目录记载的信息去判断如何执行需要的备份恢复操作。如果不采用恢复目录,备份信息可以存在于目标数据库的 control file 中。如果存放在目标数据库的 control file 中,控件文件会不断增长,不能保存 RMAN 的Script. CONTROL_FILE_RECORD_KEEP_TIME (default=7):控件文件中 RMAN 信息保存的最短时间。 使用恢复目录的优势: 可以存储脚本,记载较长时间的备份恢复操作。

RMAN Repository:存放 recovery catalog(恢复目录)的数据库。建议为恢复目录数据库创建一个单独的数据库。

RMAN的基本组件

Server Session:RMAN启动数据库上的Oracle服务器进程,将建立一个与目标数据库的会话。由目标数据库上的服务器进程进行备份、还原、恢复的实际操作。

Server Process:RMAN的服务进程是一个后台进程,用于与RMAN工具与数据库之间的通信,也用于RMAN工具与磁盘/磁带等I/O设置之间的通信,服务进程负责备份与恢复的所有工作,在如下情况将产生一个服务进程:当连接到目标数据库分配一个新的通道

Channel:(通道)一个通道是 RMAN和目标数据库之间的一个连接,"allocate channel"命令在目标数据库启动一个服务器进程,同时必须定义服务器进程执行备份或者恢复操作使用的 I/O类型。

通道控制命令可以用来:

控制 RMAN使用的 O/S资源,影响并行度

指定 I/O带宽的限制值(设置 limit read rate 参数)

定义备份片大小的限制(设置 limit kbytes)

指定当前打开文件的限制值(设置 limit maxopenfiles)

MML: (媒体管理库) Media Management Layer (MML)是第三方工具或软件,用于管理对磁带的读写与文件的 跟踪管理。如果你想直接通过 RMAN 备份到磁带上,就必须配置媒体管理层,媒体管理层 的工具如备份软件可以调用 RMAN来进行备份与恢复。

RMAN的概念术语

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

Backup Pieces (备份片)一个备份集由若干个备份片组成。每个备份片是一个单独的输出文件。一个备份片的大 小是有限制的;如果没有大小的限制, 备份集就只由一个备份片构成。备份片的大小不能 大于使用的文件系统所支持的文件长度的最大值。

Image Copies 镜像备份,镜像备份是独立文件(数据文件、归档日志、控制文件)的备份。它很类似操作系统级 的文件备份。它不是备份集或备份片,也没有被压缩。

Full backup Sets 全备份集合,全备份是一个或多个数据文件中使用过的数据块的的备份。没有使用过的数据块是不被备份的,也就是说,oracle 进行备份集合的压缩。

Incremental backup sets 增量备份集合,增量备份是指备份一个或多个数据文件的自从上一次同一级别的或更低级别的备份以来被修改过的数据块。 与完全备份相同,增量备份也进行压缩。

File multiplexing 多个数据文件可以在一个备份集中。

Recovery catalog resyncing 恢复目录同步,使用恢复管理器执行 backup、copy、restore 或者 switch 命令时,恢复目录自动进行更 新,但是有关日志与归档日志信息没有自动记入恢复目录。需要进行目录同步。使用 resync catalog命令进行同步。

Incarnation 对应物,在不完全恢复完成之后,通常需要使用 resetlogs 选项来打开数据库。resetlogs 表示一个 数据库逻辑生存期的结束和另一个数据库逻辑生存期的开始。数据库的逻辑生存期也被称为 一个对应物(incarnation)。每次使用 resetlogs 选项来打开数据库后都会创建一个新的数据库 对应物。

RMAN的使用

数据库状态:RMAN恢复目录数据库: 必须OPEN目标数据库: 根据不同情况,必须MOUNT或OPEN

1. 使用不带恢复目录的 RMAN

设置目标数据库的 ORACLE_SID ,执行:$ rman nocatalog RMAN> connect target RMAN> connect target user/pwd>@db

2. 使用带恢复目录的RMAN

$ rman catalogrman/rman RMAN> connecttarget    //连接本地数据库作为目标数据库RMAN> connecttarget user/pwd>@db //连接远程数据库或$ rman catalogrman/rman targetuser/pwd>@db

3. 命令行接口

1、单个执行

RMAN> backup database;

2、运行一个命令块

RMAN> RUN { 2> copy datafile 10 to 3> '/oracle/prod/backup/prod_10.dbf';4> }

3、运行存储在恢复目录中的脚本:

RMAN> RUN    { EXECUTE SCRIPT backup_whole_db };

4、运行外部脚本:

$ rman catalog rman/rman target / @backup_db.rman

$ rman cmdfile=backup.rman msglog=backup.log

RMAN> @backup_db.rman ]

RMAN> RUN    { @backup_db.rman }

如果在cron中执行,注意在脚本中设置正确的环境变量,例:

#set env export ORACLE_HOME=/opt/oracle/product/9.2

export ORACLE_SID=test

export NLS_LANG="AMERICAN_AMERICA.zhs16gbk"

export PATH=$PATH:$ORACLE_HOME/bin rman cmdfile=backup_db.rman

4. 使用脚本

创建或者取代脚本:

RMAN> create script alloc_disk {

2> # Allocates one disk

3> allocate channel dev1 type disk;

4> setlimit channel dev1 kbytes 2097150 maxopenfiles 32 readrate 200;

5> } RMAN> replace script rel_disk { 2> # releases disk 3> release channel dev1;5> }

删除脚本:RMAN> DELETE SCRIPT Level0Backup;

查看脚本:RMAN> PRINT SCRIPT Level0Backup;

运行脚本:RMAN> RUN { EXECUTE SCRIPT backup_whole_db };

5. 运行OS命令

RMAN支持通过执行 host命令暂时退出 RMAN的命令提示符而进入到操作系统的命令环境。

6. 执行SQL语句

在 RMAN 的命令提示符后输入 SQL 命令,然后在一对单引号(双引号亦可)中输入要执行的 SQL 语句,例如:RMAN> SQL 'ALTER SYSTEM CHECKPOINT';对于 SELECT语句,无法得到结果。可以先执行 host再用 SQLPLUS.

RMAN的配置

4.2.1 建立Recovery Catalog恢复目录

(1) 在目录数据库中创建恢复目录所用表空间:

SQL> create tablespace rman_ts datafile '/xxx/rman_ts.dbf' size 20M;

(2) 在目录数据库中创建RMAN 用户并授权:

SQL> create user rman identified by rman default tablespace rman_ts temporary tablespace temp quota unlimited on rman_ts;SQL> grant connect, resource, recovery_catalog_ownerto rman;

(3) 在目录数据库中创建恢复目录

$ rman catalog rman/rman RMAN> create catalog tablespace rman_ts;

(4) 登记目标数据库:

一个恢复目录可以注册多个目标数据库,注册目标数据库的命令为:$ RMAN catalog rman/rman target user/pwd @rcdb; RMAN> register database;

4.2.2 查看RMAN的默认设置SHOW命令

必须连接目标数据库RMAN> show all

RMAN> show channel;                              // 通道分配 RMAN> show device type;    // IO 设备类型

RMAN> show retention policy;               // 保存策略

RMAN> show datafile backup copies;     // 多个备份的拷贝数目

RMAN> show maxsetsize; // 备份集大小的最大值

RMAN> show exclude;    // 不必备份的表空间

RMAN> show backup optimization;                                                 // 备份的优化

配置RMAN的默认设置

1. 配置备份集文件的格式 (format)

RMAN> configure channel device type disk format'/u05/oracle/rmanback/%U';备份文件可以自定义各种各样的格式,如下%c 备份片的拷贝数%d 数据库名称%D 位于该月中的第几天 (DD)

%M 位于该年中的第几月 (MM)

%F 一个基于 DBID 唯一的名称,这个格式的形式为 c-IIIIIIIIII-YYYYMMDD-QQ,其中 IIIIIIIIII 为该数据库的 DBID,YYYYMMDD 为日期,QQ 是一个 1-256 的

序列%n 数据库名称,向右填补到最大八个字符%u 一个八个字符的名称代表备份集与创建时间%p 该备份集中的备份片号,从 1 开始到创建的文件数%U 一个唯一的文件名,代表%u_%p_%c %s 备份集的号%t 备份集时间戳%T 年月日格式(YYYYMMDD)

2. 配置默认 IO设备类型         ( device type )

IO 设备类型可以是磁盘或者磁带,在默认的情况下是磁盘,可以通过如下的命令 进行重新配置。

RMAN> configure default device t ype to disk; RMAN> configure default device t ype to sbt;注意,如果换了一种 IO 设备,相应的配置也需要做修改,如RMAN> configure device type sbt parallelism 2;

3. 配置自动分配的通道    ( Chanel )

RMAN> configure channel device type disk format

'/U01/ORACLE/BACKUP/%U在运行块中,手工指定通道分配,这样的话,将取代默认的通道分配。

RMAN> Run { allocate channel cq type disk format='/u01/backup/%u.bak';…

}

通道的一些特性:读的速率限制                                     Allocate channel ……rate = integer 最大备份片大小限制         Allocate channel …… maxpiecesize = integer 最大并发打开文件数(默认 16) Allocate channel …… maxopenfile = integer

4. 配置默认的保存策略 ( Retention Policy)

保存策略是管理备份与副本有效期或者是否有效的一种方法。恢复数据库的时候Oracle 不 考 虑 失效 的 备 份。我们可以定义两种保存策略:

恢复窗口备份保存策略(recovery window backup retention policy )和冗余备份保存策略(redundancy backup retention policy )

备份策略保持

分为两个保持策略:

一个是时间策略,决定至少有一个备份能恢复到指定的日期

一个冗余策略,规定至少有几个冗余的备份。 恢复窗口备份保存策略这种保存策略类型的使用基于数据库可能恢复到的最早的日期。 例如,假设今天 是星期一,此前存在 3 个备份。第一个备份在昨天生成的,第二个备份是上星期四生 成的,而最后一个备份是 10 天前备份的。假如恢复窗口是 7 天,那么昨天和上星期 四的备份是有效备份,而 10 天前的备份会成为废弃备份。下面的命令将恢复窗口配置为 7 天:RMAN> configure retention policy to recovery window of 7 days;冗余备份保存策略使用这种保存策略,RMAN    会从最新备份开是保留 N 个数据备份,其余的废弃。 例如,如果有四个备份,而冗余数是 3,那么最早的那个备份将被废弃。下面的命令将 备份策略设置为 3:RMAN> configure retention policy to redundancy3;设置 NONE可以把使备份保持策略失效,Clear 将恢复默认的保持策略RMAN> configure retention policy to none;例:保 证 至 少有一 个 备份 能 恢复 到 Sysdate-5     的时 间点 上, 之 前 的备份将 标 记 为Obsolete RMAN> configure retention policy to recovery window of 5 days;至少需要有三个冗余的备份存在,如果多余三个备份以上的备份将标记为冗余RMAN> configure retention policy to redundancy 5;

5. 配置多个备份的拷贝数目( backup copies )

如果觉得单个备份集不放心,可以设置多个备份集的拷贝,如:

RMAN> configure datafile backup copies for device type disk to 2;

RMAN> configure archivelogbackup copies for device type disk to 2;

如果指定了多个拷贝,可以在通道配置或者备份配置中指定多个拷贝地点:

RMAN> configure channel device type disk format

'/u01/backup/%U', '/u02/backup/%U';

RMAN> backup datafile n format '/u01/backup/%U', '/u02/backup/%U';

6. 设置并行备份( ARALLELISM )

RMAN支持并行备份与恢复,也可以在配置中指定默认的并行程度。如:RMAN> configure device type disk parallelism 4;指定在以后的备份与恢复中,将采用并行度为 4,同时开启 4个通道进行备份与恢 复,当然也可以在 RUN的运行块中手工分配多个通道来决定备份与恢复的并行程度。 并行的数目决定了开启通道的个数。如果指定了通道配置,将采用指定的通道,如果没 有指定通道,将采用默认通道配置。

还可以在 BACKUP命令中使用指定 FILESPERSET 或者指定(datafile 1,4,5 channel c1 tag=DF1)(datafile 2,3,6 channel c2 tag=DF2)

7. 设置控制文件自动备份 (autobackup on)

通过如下的命令,可以设置控制文件的自动备份RMAN> configure controlfile autobackup on;对于没有恢复目录的备份策略来说,这个特性是特别有效的,控制文件的自动备份发生在任何 backup 或者 copy 命令之后,或者任何数据库的结构改变之后。

可以用如下的配置指定控制文件的备份路径与格式RMAN> configure controlfile autobackup format for type disk to '%f';

在备份期间,将产生一个控制文件的快照,用于控制文件的读一致性,如下配置:

RMAN> configure snapshot controlfile name to

'/u01/app/oracle/product/9.0.2/dbs/snapcf_U02.f';

8. 设置备份优化选项 ( optimization )

可以在配置中设置备份的优化,如RMAN> configure backup optimization on;如果优化设置打开,将对备份的数据文件、归档日志或备份集运行一个优化算法。

RMAN 会话的设置

set 命令与configure命令很相似,但是set命令设置不是永久的。set 命令定义只应用于当前 RMAN会话的设置。

可以用于RUN代码之外的命令有:set echo on | off             // 显示或关闭 RMAN显示set DBID dbidn            // 指定一个数据库的数据库标识符。

下面的set 命令只能在 RUN代码中使用:set newname:用于TSPITR或者数据库复制操作,指定新的数据库文件名,将数据库移动到新的系统中并且文件名不同的时候可以用此命令。

set maxcorrupt for datafile:用于定义 RMAN操作失败之前允许的数据块讹误的数量set archivelog destination:可以修改存储归档的重做日志 archive_log_dest_1 的目的地。

set命令和until 子句:可以定义数据库时间点恢复操作所使用的具体的时间点、SCN或者日志序列号,例:

set until time "to_date('2005/08/01 13:00:00','yyyy/mm/dd hh24:mi:ss')";

set backup copies:

使用该命令可以定义为备份集的每个备份片创建的镜像副本数。

例:

RMAN> RUN{

set maxcorrupt for datafile 3 to 10;

set backup copies = 2;

backup database;

}

设定参数

CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '/arch/rman/controlfile%F.ctnl';
CONFIGURE CHANNEL 1 DEVICE TYPE DISK FORMAT   '/arch/rman/full%t.bak';
 
数据库rman 全备
rman>backup database plus archivelog delete input;
备份产生的三个文件
-rw-r----- 1 oracle oinstall   7143424 Jan 28 18:05 controlfilec-2719028776-20100128-01.ctnl
-rw-r----- 1 oracle oinstall  41074688 Jan 28 18:03 full709495428.bak
-rw-r----- 1 oracle oinstall 763379712 Jan 28 18:05 full709495432.bak
-rw-r----- 1 oracle oinstall     17920 Jan 28 18:05 full709495518.bak
 
 
rman恢复
------------------
1、启动数据库到 nomount 状态
$sqlplus / as sysdba
SQL> startup nomount
 
2、spfile 恢复
$rman nocatalog
rman> connect target /
run {
allocate channel c1 DEVICE TYPE DISK format '/arch/rman/controlfile%F.ctnl';
restore spfile to pfile '/arch/pfile.ora' from '/arch/rman/controlfilec-2719028776-20100128-01.ctnl';
release channel c1;
}
3、控制文件恢复
run {
allocate channel c1 DEVICE TYPE DISK format '/arch/rman/controlfile%F.ctnl';
restore controlfile from '/arch/rman/controlfilec-2719028776-20100128-01.ctnl';
release channel c1;
}
4、全库恢复
在恢复控制文件的情况下,可以修改数据到 mount状态,进行全库的恢复
rman> alter database mount;
run {
allocate channel c1 device type disk format '/arch/rman/full%t.bak';
restore database;
release channel c1;
}
5、恢复archivelog
run {
allocate channel c1 device type disk format '/arch/rman/full%t.bak';
restore archivelog all;
}
run {
allocate channel c1 device type disk format '/arch/rman/full%t.bak';
restore archivelog from logseq=72 until logseq=73;   
}
6、redolog 恢复
SQL>recover database using backup controlfile until cancel;
SQL>alter database open resetlogs;  //现在有redolog 产生了,还有temp表空间文件也生成了或者分开两步执行   
   
SQL>select * from dual;
全库成功恢复

Oracle Rman恢复的更多相关文章

  1. oracle rman恢复数据库 方式恢复到异地数据库

    目的:从某个环境中,获取相关文件,放到异地机器使用rman 恢复.   情况说明:XX系统使用的是oracle数据库,现已从服务器拉下来相关文件,依靠这些文件来早本地的测试机上恢复数据库,方便进行数据 ...

  2. Oracle RMAN 恢复控制文件到指定的路径

    Oracle 数据库通过RMAN恢复控制文件到指定的路径 --------------------------------------------------------- 先查询备份集信息,再指定备 ...

  3. Oracle RMAN 恢复数据库到不同主机(二)

    我们在recover database时报一个错误: RMAN-06054: media recovery requesting unknown archived log for thread 1 w ...

  4. Oracle RMAN 恢复数据库到不同主机(一)

    一.RMAN 备份的内容 RMAN做数据库全备时包含了 数据文件.归档日志.控制文件和参数文件和备份日志,如下: arch_20160223_08qukp2t_1_1  arch_20160223_0 ...

  5. oracle rman异机恢复

      Oracle源主机 Oracle目标主机 主机平台 CentOS6.2(final) CentOs6.2(FInal) 主机名 vick rman IP地址 192.168.1.11 192.16 ...

  6. Oracle DB 使用RMAN恢复目录

    • 对恢复目录和RMAN 资料档案库控制文件的使用进行比较• 创建和配置恢复目录• 在恢复目录中注册数据库• 同步恢复目录• 使用RMAN 存储脚本• 备份恢复目录• 创建虚拟专用目录 RMAN 资料 ...

  7. rman恢复方案和oracle异机恢复

    这篇文章主要介绍了rman恢复方案和oracle异机恢复,需要的朋友可以参考下 注:①恢复的前提是已经做好备份②完全恢复数据库是数据库遇到故障,在恢复时候没有丢失任何已经提交事物数据的恢复不完全恢复数 ...

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

    一,rman介绍 RMAN(Recovery Manager)是随Oracle服务器软件一同安装的工具软件,它可以用来备份和恢复数据库文件.归档日志和控制文件,用来执行完全或不完全的数据库恢复.与传统 ...

  9. Oracle RMAN 学习:恢复

    Oracle RMAN 学习:恢复 6 rman恢复 Rman中的恢复对应restore,recover Restore,数据修复,利用备份集的数据文件来替换已损坏的数据文件或将其恢复到另外一个位置, ...

随机推荐

  1. javascript把RGB指定颜色转换成十六进制颜色(Converting R,G,B values to HTML hex notation)

    Prologue 看见一篇非常好的外国文章,Making annoying rainbows in javascript,事实上我当时非常想把它翻译下来的,可是对于一个连六级都没过的人确实有点难度,一 ...

  2. Java中Collections和Collection的区别

    java.util.Collection Collection 层次结构 中的根接口.Collection 表示一组对象,这些对象也称为 collection 的元素.一些 collection 允许 ...

  3. Touch事件分发机制

    原文:http://www.cnblogs.com/linjzong/p/4191891.html Touch事件分发中只有两个主角:ViewGroup和View.Activity的Touch事件事实 ...

  4. Java排序算法总结(转载)

    排序算法 平均时间复杂度 冒泡排序 O(n2) 选择排序 O(n2) 插入排序 O(n2) 希尔排序 O(n1.5) 快速排序 O(N*logN) 归并排序 O(N*logN) 堆排序 O(N*log ...

  5. Redis以服务的形式启动

    ★期望目标:把RedisWatcher安装为windows服务. 安装完成后, 到安装目录下修改watcher.conf. 注意,任何路径都不可包含空格,中文,特殊字符,且全部使用绝对路径 ※配置文件 ...

  6. 自动化测试管理平台ATMS(V1.0.1_7.29)下载

    自动化测试管理平台ATMS(V1.0.1_7.29)下载http://automationqa.com/forum.php?mod=viewthread&tid=2582&fromui ...

  7. CSS3 Loading进度条加载动画特效

    在线演示 本地下载

  8. sublime text3 破解, 中文乱码支持, 设置

    1. 激活 菜单: Help -> Enter License, 弹出对话框输入激活码确认(Use License):如下图:. 激活码: ----- BEGIN LICENSE ----- A ...

  9. uiautomator-CTS上运行,出xml报告

      一.CTS 介绍与命令说明 主要介绍: CTS下载与配置 CTS目录说明 CTS基本命令说明 Windows系统下运行CTSCTS 全称Compatibility Test Suite 兼容性测试 ...

  10. React Native中加载指示器组件ActivityIndicator使用方法

    这里讲一下React Native中的一个组件——ActivityIndicator,这是一个加载指示器,俗称菊花,很常见的,效果如下所示: 可以看到图中有两个加载指示器,一大一小,这是尺寸不是我设置 ...