技术开发 频道

ORCLE 数据库备份与恢复之四:RMAN(备份与恢复管理器)

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

RMAN可以由命令行接口或者 OEM的 Backup Manager GUI 来控制
4.1 基本知识
4.1.1 RMAN组件、概念
 
1  RMAN  要包括以下组件
 
Target Database: (标数据库)
是需要  RMAN  其进行备份与恢复的数据库,RMAN  以备份数据文件,控制文
,归档日志,spfile。(注意:RMAN不能用于备份联机日志、初始化参数文件和口令文件)
Server Session:    (务器会话)
RMAN启动数据库上的 Oracle服务器进程,将建立一个与目标数据库的会话。由目标
据库上的服务器进程进行备份、还原、恢复的实际操作。
 
务器进程
 
RMAN  的服务进程是一个后台进程,用于与 RMAN工具与数据库之间的通信,也用于 RMAN  工具与磁/磁带等  I/O  置之间的通信,服务进程负责备份与恢复的所有工作,如下情况将产生一个服务进程:
     当连接到目标数据库
     分配一个新的通道
 
Channel:    ()
 
个通道是 RMAN和目标数据库之间的一个连接,"allocate channel"命令在目标数据库
动一个服务器进程,同时必须定义服务器进程执行备份或者恢复操作使用的 I/O类型。
道控制命令可以用来:
?      控制 RMAN使用的 O/S资源,影响并行度
?      指定 I/O带宽的限制(设置 limit read rate 参数)
?      定义备份片大小的限制(设置 limit kbytes
?      指定当前打开文件的限制值(设置 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来进行备份与恢复。
 
2念述语
 
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  项来打开数据库后都会创建一个新的数据库应物。
4.1.2 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。
0
相关文章