日期:2014-05-16  浏览次数:20452 次

RMAN的基本知识及使用技巧

RMAN是 ORACLE提供的一个备份与恢复的工具,可以用来备份和还原数据库文件、 归档日志和控制文件。它也可以用来执行完全或不完全的数据库恢复。


一,RMAN的组件、概念
1,RMAN  主要包括以下组件:
Target Database: (目标数据库)
就是需要 RMAN 对其进行备份与恢复的数据库,RMAN 可以备份数据文件,控制文件,归档日志,spfile。(注意:RMAN不能用于备份联机日志、初始化参数文

件和口令文件)

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

 
(Server Process)服务器进程
RMAN 的服务进程是一个后台进程,用于与 RMAN工具与数据库之间的通信,也用于 RMAN 工具与磁盘/磁带等  I/O  设置之间的通信,服务进程负责备份与恢复

的所有工作,在如下情况将产生一个服务进程:
当连接到目标数据库
分配一个新的通道

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

用的 I/O类型。

通道控制命令可以用来:
a,控制 RMAN使用的 O/S资源,影响并行度
b,指定 I/O带宽的限制值(设置 limit read rate 参数)
c,定义备份片大小的限制(设置 limit kbytes)
d,指定当前打开文件的限制值(设置 limit maxopenfiles)

 
recovery catalog: (恢复目录)
用来保存备份与恢复信息的一个数据库,不建议创建在目标数据库上。RMAN 利用恢复目录记载的信息去判断如何执行需要的备份恢复操作。如果不采用恢复目

录,备份信息可以存在于目标数据库的 control file 中。如果存放在目标数据库的  control  file  中,控件文件会不断增长,他不能保存RMAN  的Script。
其中参数CONTROL_FILE_RECORD_KEEP_TIME  (default=7)设置了控件文件中RMAN  信息保存的最短时间。使用恢复目录的优势:可以存储脚本,记载较长时

间的备份恢复操作。

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

MML: (媒体管理库)
Media Management Layer (MML)是第三方工具或软件,用于管理对磁带的读写与文件的 跟踪管理。如果你想直接通过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命令进行同步。
RMAN> resync catalog;

Incarnation  对应物
在不完全恢复完成之后,通常需要使用resetlogs选项来打开数据库。resetlogs表示一个数据库逻辑生存期的结束和另一个数据库逻辑生存期的开始。数据库的逻辑

生存期也被称为一个对应物(incarnation)。每次使用resetlogs选项来打开数据库后都会创建一个新的数据库对应物。


三,命令行接口
1、单个执行
RMAN> backup database;

2、运行一个命令块
RMAN> RUN {copy datafile 4 to '/u01/backup/prod_4.dbf';}

3、运行存储在恢复目录中的脚本:
RMAN> RUN    { EXECUTE SCRIPT bck_whole_db };


4.  RMAN使用脚本
创建脚本
RMAN> create script bck_db_level0{
2> backup as backupset incremental level=0 format '/u01/backup/%d_%s_%p' database;
3> sql 'alter system archive log current';
4> }

修改RMAN脚本
RMAN> replace script bck_db_level0{
2> backup as backupset incremental level=0 format '/u01/backup/%d_%s_%p' database;
3> sql 'alter system archive log current';
4> }

显示RMAN脚本
RMAN> print script bck_db_level0;
printing stored script: bck_db_level0
 {backup as backupset incremental level=0 format '/u01/backup/%d_%s_%p' database;
sql 'alter system archive log current';
}

删除RMAN脚本
RMAN> delete script bck_db_level0;

执行RMAN脚本
RMAN> run {execute script bck_db_level0;}

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

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


四,查看RMAN的默认设置SHOW命令
必须连接目标数据库
RMAN> show all
RMAN> show channel;   &nbs