`
chengyue2007
  • 浏览: 1464657 次
  • 性别: Icon_minigender_1
  • 来自: 大连
社区版块
存档分类
最新评论

RMAN参考使用手册(转)

 
阅读更多

RMAN的概念与体系结构
Oracle 9i RMAN的配置
运用RMAN进行备份
运用RMAN进行还原与恢复
RMAN的日常管理
RMAN的恢复目录
一、RMAN的概念与体系结构
Recovery Manager(RMAN)是一种用于备份(backup)、还原(restore)和恢复(recover)
数据库的 Oracle 工具。RMAN只能用于ORACLE8或更高的版本中。它能够备份整个数据
库或数据库部件,如表空间、数据文件、控制文件、归档文件以及Spfile参数文件。RMAN
也允许您进行增量数据块级别的备份,增量RMAN备份是时间和空间有效的,因为他们只备
份自上次备份以来有变化的那些数据块。而且,通过RMAN提供的接口,第三方的备份与恢
复软件如veritas将提供更强大的备份与恢复的管理功能。
通过RMAN,也提供了其它更多功能,如数据库的克隆、采用RMAN建立备用数据库、
利用RMAN备份与移动裸设备(RAW)上的文件等工作将变得更方便简单。9i的RMAN通过
增强的自动配置与管理功能,以及特有的块级别的恢复,将使备份与恢复工作变得更加快捷
与完美。9i的RMAN有如下特征特性:
·自动的备份与恢复
·方便的备份归档日志
·自动检测新的数据文件
·支持增量备份
·最大限度的减少备份与恢复的错误
·减少恢复的时间
·在热备份中不会产生额外的redo日志
·腐烂数据块的自动检测
3
·并行的备份与恢复操作
·在线备份时,表空间不用置于备份模式
可以看到,在以上的一些特性中,显示了RMAN强大的功能与好处,以上功能的实现,
是因为RMAN是块级别的备份与恢复,备份与恢复发生在数据库块级别,可以通过比较数据
块而获得一致性的数据块,可以避免备份没有用过的块,可以检验块是否腐烂等块级别的问
题。
RMAN的体系结构可以用如下图表示:
RMAN 的体系结构
对于组成以上RMAN 的结构,说明如下:
1、RMAN 工具
也就是RMAN 命令,起源于Oracle 版本8,一般位于$ORACLE_HOME/bin 目录下,
可以通过运行rman这个命令来启动RMAN 工具,用于备份与恢复的接口。
2、服务进程
RMAN 的服务进程是一个后台进程,用于与RMAN工具与数据库之间的通信,也用于
RMAN 工具与磁盘/磁带等I/O 设置之间的通信,服务进程负责备份与恢复的所有工作,在
如下情况将产生一个服务进程
·当连接到目标数据库
·分配一个新的通道
3、通道
通道是服务进程与I/O 设备之前读写的途径,一个通道将对应一个服务进程,在分配通
道时,需要考虑I/O 设备的类型,I/O 并发处理的能力,I/O 设备能创建的文件的大小,数据
库文件最大的读速率,最大的打开文件数目等因素
4、目标数据库
就是RMAN 进行备份与恢复的数据库,RMAN 可以备份除了联机日志,pfile,密码文
件之外的数据文件,控制文件,归档日志,spfile
4
5、恢复目录
用来保存备份与恢复信息的一个数据库,不建议创建在目标数据库上,利用恢复目录可
以同时管理多个目标数据库,存储更多的备份信息,可以存储备份脚本。如果不采用恢复目
录,可以采用控制文件来代替恢复目录,oracle 9i因为控制文件自动备份的功能,利用控制
文件很大程度上可以取代恢复目录。
6、媒体管理层
Media Management Layer (MML)是第三方工具或软件,用于管理对磁带的读写与文件的
跟踪管理。如果你想直接通过RMAN 备份到磁带上,就必须配置媒体管理层,媒体管理层
的工具如备份软件可以调用RMAN 来进行备份与恢复。
7、备份,备份集与备份片
当发出backup命令的时候,RMAN 将创建一个完成的备份,包含一个到多个备份集,
备份集是一个逻辑结构,包含一组的物理文件。这些物理文件就是对应的备份片。备份片是
最基本的物理结构,可以产生在磁盘或者磁带上,可以包含目标数据库的数据文件,控制文
件,归档日志与spfile文件。
备份集与备份片有如下规定
一个数据文件不能跨越一个备份集,但是能跨越备份片
数据文件,控制文件能保存在同样的备份集上,但是不能与归档日志保存在同样的备份集上
二、启动与运行RMAN
2.1 运行要求
1、进程与内存要求
更多的进程的需要
大池的分配
2、基本环境变量需求
ORACLE_SID, ORACLE_HOME, PATH, NLS_LANG, 如果用到了基于时间的备份与恢
复,需要另外设置NLS_DATE_FORMAT
3、权限要求
需要SYSDBA系统权限
如果是本地,可以采用OS认证,远程需要采用密码文件认证
4、版本要求
RMAN 工具版本与目标数据库必须是同一个版本,如果使用了恢复目录,还需要注意
·创建RMAN 恢复目录的脚本版本必须等于或大于恢复目录所在数据库的版本
·创建RMAN 恢复目录的脚本版本必须等于或大于目标数据库的版本
2.2 基本运行方法
9i默认是nocatalog,不使用恢复目录,使用命令rman即可进入RMAN 的命令行界面,

[oracle@db oracle]$ $ORACLE_HOME/bin/rman
5
Recovery Manager: Release 9.2.0.4.0 - Production
Copyright (c) 1995, 2002, Oracle Corporation. All rights reserved.
RMAN>
连接目标数据库,可以用如下类似命令
RMAN>Connect target /
2.3怎么样运行RMAN 命令
1、单个执行
RMAN>backup database;
2、运行一个命令块
RMAN> run {
2> copy datafile 10 to
3> '/oracle/prod/backup/prod_10.dbf';
4> }
3、运行脚本
$ rman TARGET / @backup_db.rman
RMAN> @backup_db.rman
RMAN> RUN { @backup_db.rman }
运行存储在恢复目录中的脚本
RMAN> RUN { EXECUTE SCRIPT backup_whole_db };
4、SHELL脚本,如果在cron中执行,注意设置正确的环境变量在脚本中
[oracle@db worksh]$ more rmanback.sh
#!/bin/ksh
#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
echo "-----------------------------start-----------------------------";date
#backup start
$ORACLE_HOME/bin/rman <<EOF
connect target
delete noprompt obsolete;
backup database format '/netappdata1/rmanback/tbdb2/%U_%s.bak' filesperset = 2;
exit;
EOF
echo "------------------------------end------------------------------";date
6
三、RMAN的自动配置
Oracle 9i可以配置一些参数如通道,备份保持策略等信息,通过一次设定可以多次使用,
而且,设置中的信息不影响脚本中的重新设置。RMAN 默认的配置参数,通过show all 就
可以看出来。
RMAN> show all;
RMAN configuration parameters are:
CONFIGURE RETENTION POLICY TO REDUNDANCY 1;
CONFIGURE BACKUP OPTIMIZATION OFF;
CONFIGURE DEFAULT DEVICE TYPE TO DISK;
CONFIGURE CONTROLFILE AUTOBACKUP OFF;
CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR TYPE DISK TO '%F';
CONFIGURE DEVICE TYPE DISK PARALLELISM 1;
CONFIGURE DATAFILE BACKUP COPIES FOR DEVICE TYPE DISK TO 1;
CONFIGURE ARCHIVELOG BACKUP COPIES FOR DEVICE TYPE DISK TO 1;
CONFIGURE MAXSETSIZE TO UNLIMITED;
CONFIGURE SNAPSHOT CONTROLFILE NAME TO
'/u01/app/oracle/product/9.0.2/dbs/snapcf_U02.f';
3.1 备份策略保持
分为两个保持策略,一个是时间策略,决定至少有一个备份能恢复到指定的日期,一个
冗余策略,规定至少有几个冗余的备份。
CONFIGURE RETENTION POLICY TO RECOVERY WINDOW OF 5 DAYS;
CONFIGURE RETENTION POLICY TO REDUNDANCY 5;
CONFIGURE RETENTION POLICY TO NONE;
在第一个策略中,是保证至少有一个备份能恢复到Sysdate-5 的时间点上,之前的备份
将标记为Obsolete。第二个策略中说明至少需要有三个冗余的备份存在,如果多余三个备份
以上的备份将标记为冗余。NONE 可以把使备份保持策略失效,Clear 将恢复默认的保持策
略。
3.2通道配置与自动通道分配
通过CONFIGURE 配置自动分配的通道,而且可以通过数字来指定不同的通道分配情
况。
CONFIGURE CHANNEL DEVICE TYPE DISK FORMAT '/U01/ORACLE/BACKUP/%U‘
CONFIGURE CHANNEL n DEVICE TYPE DISK FORMAT '/U01/ORACLE/BACKUP/%U‘
当然,也可以在运行块中,手工指定通道分配,这样的话,将取代默认的通道分配。
Run{
allocate channel cq type disk format='/u01/backup/%u.bak'
……
}
7
以下是通道的一些特性
读的速率限制
Allocate channel …… rate = integer
最大备份片大小限制
Allocate channel …… maxpiecesize = integer
最大并发打开文件数(默认16)
Allocate channel …… maxopenfile = integer
3.3控制文件自动备份
从9i开始,可以配置控制文件的自动备份,但是这个设置在备用数据库上是失效的。通
过如下的命令,可以设置控制文件的自动备份
CONFIGURE CONTROLFILE AUTOBACKUP ON;
对于没有恢复目录的备份策略来说,这个特性是特别有效的,控制文件的自动备份发生
在任何backup或者copy命令之后,或者任何数据库的结构改变之后。
可以用如下的配置指定控制文件的备份路径与格式
CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR TYPE DISK TO '%F';
在备份期间,将产生一个控制文件的快照,用于控制文件的读一致性,这个快照可以通
过如下配置
CONFIGURE SNAPSHOT CONTROLFILE NAME TO
'/u01/app/oracle/product/9.0.2/dbs/snapcf_U02.f';
3.4设置并行备份
RMAN支持并行备份与恢复,也可以在配置中指定默认的并行程度。如
CONFIGURE DEVICE TYPE DISK PARALLELISM 4;
指定在以后的备份与恢复中,将采用并行度为4,同时开启4个通道进行备份与恢复,当
然也可以在run的运行块中指定通道来决定备份与恢复的并行程度。
并行的数目决定了开启通道的个数。如果指定了通道配置,将采用指定的通道,如果没
有指定通道,将采用默认通道配置。
3.5配置默认IO 设备类型
IO 设备类型可以是磁盘或者磁带,在默认的情况下是磁盘,可以通过如下的命令进行重新
配置。
CONFIGURE DEFAULT DEVICE TYPE TO DISK;
CONFIGURE DEFAULT DEVICE TYPE TO SBT;
注意,如果换了一种IO设备,相应的配置也需要做修改,如
RMAN> CONFIGURE DEVICE TYPE SBT PARALLELISM 2;
8
3.6配置多个备份的拷贝数目
如果觉得单个备份集不放心,可以设置多个备份集的拷贝,如
CONFIGURE DATAFILE BACKUP COPIES FOR DEVICE TYPE DISK TO 2;
CONFIGURE ARCHIVELOG BACKUP COPIES FOR DEVICE TYPE DISK TO 2;
如果指定了多个拷贝,可以在通道配置或者备份配置中指定多个拷贝地点
CONFIGURE CHANNEL DEVICE TYPE DISK FORMAT '/u01/backup/%U', '/u02/backup/%U';
RMAN>backup datafile n format '/u01/backup/%U', '/u02/backup/%U';
3.7备份优化
可以在配置中设置备份的优化,如
CONFIGURE BACKUP OPTIMIZATION ON;
如果优化设置打开,将对备份的数据文件、归档日志或备份集运行一个优化算法。
同样的DBID,检查点SCN,ResetlogSCN 与时间
正常离线,只读或正常关闭的文件
归档日志
同样的线程,序列号RESETLOG SCN 与时间
3.8备份文件的格式
备份文件可以自定义各种各样的格式,如下
%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)
四、用RMAN备份
RMAN可以用来备份主或备用数据库,如表空间、数据文件、归档日志、控制文件、服务
器文件与备份集。
9
4.1文件拷贝
原始文件的拷贝,有点类似于OS热备份,可以拷贝整个数据文件到另外一个地点,但
是结果仅仅只能写入到硬盘,而且单独的文件是分开的。
一个文件拷贝的例子
run {
allocate channel d1 type disk;
allocate channel d2 type disk;
allocate channel d3 type disk;
copy # first
datafile 1 to '$HOME/prd1.dbf',
datafile 2 to '$HOME/prd2.dbf';
copy # second
datafile 3 to '$HOME/prd3.dbf';
sql 'alter system archive log current';
}
4.2备份与备份集
RMAN 的常规备份是产生只有RMAN 才能识别的备份集,所以,除了copy 命令之外
的其他备份,都是RMAN 产生的备份集以及对应的备份片。
一个备份数据库的例子,开启两个通道,将数据库备份到磁带
run {
allocate channel t1 type 'SBT_TAPE';
allocate channel t2 type 'SBT_TAPE';
backup
filesperset 2
format 'df_%t_%s_%p'
database;
}
RMAN 也可以实现多个镜相的备份
Run{
allocate channel d1 type disk;
allocate channel d2 type disk;
allocate channel d3 type disk;
SET BACKUP COPIES 3;
BACKUP DATAFILE 7 FORMAT '/tmp/%U','?/oradata/%U','?/%U';
};
以下是常见的备份归档的例子
RMAN>sql ‘alter system archive log current’;
RMAN>backup archivelog all delete input;
RMAN> backup archivelog from time '01-jan-00' until time '30-jun-00';
RMAN> backup archivelog like 'oracle/arc/dest/log%';
10
RMAN> backup archivelog all;
RMAN> backup archivelog from logseq 20 until logseq 50 thread 1;
RMAN> backup archivelog from scn 1 until scn 9999;
在RAC环境中,因为数据库是共享的,所以可以连接到一个实例就可以备份整个数据库,
但是,因为归档日志可以备份在本地,所以RAC归档日志的备份就变的复杂一些,我们可
以通过连接到两个实例的通道来备份两个实例的归档日志。
run{
ALLOCATE CHANNEL node_c1 DEVICE TYPE DISK CONNECT 'sys/pass@dbin1';
ALLOCATE CHANNEL node_c2 DEVICE TYPE DISK CONNECT 'sys/pass@dbin2';
sql 'ALTER SYSTEM ARCHIVE LOG CURRENT';
backup archivelog all delete input format '/u01/dbbak/%U_%s.bak' filesperset =
5;
}
4.3 常见备份参数
1、Keep参数可以长期的保持特殊的备份或者拷贝,让它们不受默认备份保持策略的影响,

RMAN> BACKUP DATABASE KEEP UNTIL TIME
2> "to_date('31-MAR-2002','DD_MM_YYYY)" nologs;
RMAN> BACKUP TABLESPACE SAMPLE KEEP FOREVER NOLOGS;
其中NOLOGS 表示可以不保留该备份以来的归档日志,默认是LOGS,表示保留该备份以
来的参数,如果想让该备份永久有效,可以使用FOREVER参数。
2、Tag参数指明了备份集的标志,可以达到30 个字符长度,如
RMAN> BACKUP DEVICE TYPE DISK DATAFILE 1 TAG
2> "wkly_bkup";
在Oracle 92 版本以后,RMAN 自动提供一个TAG,格式为TAGYYYYMMDDTHHMMSS
如TAG20020208T133437,通过备份标志TAG,也可以很方便的从备份集进行恢复,如
Restore database from tag=’tag name’
4.4增量备份
在说明增量备份之前,首先要理解差异增量与累计增量备份,以及增量备份的备份与恢复原
理。
差异增量,是默认的增量备份方式。
11
累计增量备份
可以看到,差异增量是备份上级或同级备份以来变化的块,累计增量是备份上级备份以
来变化的块。累计增量增加了备份的时间,但是因为恢复的时候,需要从更少的备份集中恢
复数据,所以,为了减少恢复的时候,累计增量备份将比差异增量备份更有效。
不管怎么样增量备份,在Oracle 版本9 中,还是需要比较数据库中全部的数据块,这个过
程其实也是一个漫长的过程,而且由于增量备份形成多个不同的备份集,使得恢复变的更加
不可靠而且速度慢,所以增量备份在版本9 中仍然是鸡肋,除非是很大型的数据仓库系统,
没有必要选择增量备份。
Oracle 版本10在增量备份上做了很大的改进,可以使增量备份变成真正意义的增量,
因为通过特有的增量日志,使得RMAN 没有必要去比较数据库的每一个数据块,当然,代
价就是日志的IO 与磁盘空间付出,完全还是不适合OLTP系统。另外,版本10 通过备份的
合并,使增量备份的结果可以合并在一起,而完全的减少了恢复时间。
增量备份都需要一个基础,比如0 级备份就是所有增量的基础备份,0级备份与全备份
的不同就是0 级备份可以作为其它增量备份的基础备份而全备份是不可以的,是否选择增量
备份作为你的备份策略,最终,需要你自己有一个清醒的认识。
以下是零级备份的例子
backup incremental level 0 database;
一级差异增量例子
backup incremental level 1 database;
一级累计增量例子
backup incremental level 1 cumulative database;
12
4.5备份检查
我们可以通过Validate命令来检查是否能备份,如数据文件是否存在,是否存在坏块不
能被备份,如:
BACKUP VALIDATE DATABASE;
BACKUP VALIDATE DATABASE ARCHIVELOG ALL;
4.6重新启动备份
对于异常结束了的备份,很多人可能不想再重新开始备份了吧,特别是备份到90%以
上,因为异常原因终止了该备份,那怎么办呢?RMAN 提供一个重新开始备份的方法,通
过简单的命令,你就可以只备份那不到10%的数据了。
RMAN> BACKUP NOT BACKED UP SINCE TIME 'SYSDATE-14'
2> DATABASE PLUS ARCHIVELOG;
4.7 RMAN 动态性能视图
以下是与RMAN 备份有关系的一些动态性能视图,信息是从控制文件中获取的。
V$ARCHIVED_LOG
V$BACKUP_CORRUPTION
V$COPY_CORRUPTION
V$BACKUP_DATAFILE
V$BACKUP_REDOLOG
V$BACKUP_SET
V$BACKUP_PIECE
V$BACKUP_DEVICE
V$CONTROLFILE_RECORD_SECTION
这里还有一个视图,可以大致的监控到RMAN备份进行的程度。如通过如下的SQL脚本,
将获得备份的进度。
SQL> SELECT SID, SERIAL#, CONTEXT, SOFAR, TOTALWORK,
2 ROUND(SOFAR/TOTALWORK*100,2) "%_COMPLETE"
3 FROM V$SESSION_LONGOPS
4 WHERE OPNAME LIKE 'RMAN%'
5 AND OPNAME NOT LIKE '%aggregate%'
6 AND TOTALWORK != 0
7 AND SOFAR <> TOTALWORK;
SID SERIAL# CONTEXT SOFAR TOTAL WORK %_COMPLETE
--- ------- ------- ------- --------- ----------
13 75 1 9470 15360 61.65
12 81 1 15871 28160 56.36
13

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics