分享
 
 
 

RMAN 初学者指南

王朝other·作者佚名  2006-01-09
窄屏简体版  字體: |||超大  

RMAN 初学者指南

转自聚贤庄作者:gototop

============================================

这篇文章是去年写的了,最初发表在chinaunix.net的oracle论坛里,收录在旧版文集中,可能很多没有看到,总有人写信要,今天乘改版之际就把它单独拿出来了。(gototop 2003.6.24注)

RMAN(Recovery Manager)是DBA的一个重要工具,用于备份、还原和恢复oracle数据库,前一段时间有网友找我要,可惜没时间,趁这两天出差在外没什么事,就写了一下,供初学的朋友参考。本文将介绍RMAN 的基本操作,更多的信息请参考《Oracle8i Backup & Recovery Guide》及RMAN 手册,或者是OCP Student Guide M09096《Backup and Recovery Workshop》Volume 2,也可以通过 gototop@ncn.cn 和我联系。Oracle 自带的例子参考$ORACLE_HOME/rdbms/demo 目录下的*.rcv脚本。

一、RMAN 简介

RMAN 可以用来备份和恢复数据库文件、归档日志和控制文件,也可以用来执行完全或不完全的数据库恢复。RMAN有三种不同的用户接口:COMMAND LINE方式、GUI 方式(集成在OEM 中的备份管理器)、API 方式(用于集成到第三方的备份软件中)。具有如下特点:

1)功能类似物理备份,但比物理备份强大N倍,从下面的特点可以看到;

2)可以压缩空块;

3)可以在块水平上实现增量;

4)可以把备份的输出打包成备份集,也可以按固定大小分割备份集;

5)备份与恢复的过程可以自动管理;

6)可以使用脚本(存在Recovery catalog 中)

7)可以做坏块监测

二、相关术语解释

1)Backup sets 备份集

备份集顾名思义就是一次备份的集合,它包含本次备份的所有备份片,以oracle专有的格式保存。一个备份集根据备份的类型不同,可能构成一个完全备份或增量备份。

2)Backup pieces 备份片

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

3)Image copies 映像备份

映像备份不压缩、不打包、直接COPY 独立文件(数据文件、归档日志、控制文件),类似操作系统级的文件备份。而且只能COPY 到磁盘,不能到磁带。可以作为增量备份的0级,一般用来备份控制文件。

4)Full backup 全备份

全备份是指对数据文件中使用过的数据块进行备份,没有使用过的数据块是不做备份的,也就是说,RMAN 进行备份是进行压缩的。

5)Incremental backup 增量备份

增量备份是指备份数据文件中自从上一次同一级别的或更低级别的备份以来被修改过的数据块。与完全备份相同,增量备份也进行压缩。增量备份虽然概念很好,备份也很简单,但恢复起来却是另外一回事,不仅麻烦而且容易出错,所以实际中越来越少使用,到了Oracle 9i已经建议不再使用,以后版本会逐渐取消对增量备份的支持。

6)Recovery catalog 恢复目录

恢复目录用于记录RMAN 使用过程中的控制信息,恢复目录应该经常被同步(这在后面会讲到)。尽管我们可以使用nocatalog 方式来使用RMAN,此时控制信息记录在目标数据库的控制文件中,但这样毕竟不安全,因为一旦目标数据库的控制文件损坏就意味着所有的RMAN 备份失效。同样的道理恢复目录应该建立在另外一个数据库中,在下面的例子中我们称作“目录数据库”。

三、创建恢复目录

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

SQL> create tablespace rmants datafile 'c:\oracle\oradata\cc\rmants.ora' size 20M ;

表空间已创建。

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

SQL> create user rman identified by rman default tablespace rmants temporary tablespace temp quota

unlimited on rmants;

用户已创建

SQL> grant recovery_catalog_owner to rman ;

授权成功。

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

C:\>rman catalog rman/rman

恢复管理器:版本8.1.7.0.0 - Production

RMAN-06008:连接到恢复目录数据库

RMAN-06428:未安装恢复目录

RMAN>create catalog tablespace rmants;

RMAN-06431:恢复目录已创建

4、注册目标数据库到恢复目录

注意哦,这里我的目标数据库使用的服务名称是rman,意思为要使用RMAN 进行备份的数据库,而目录

数据库使用的服务名称是CC。

C:\>rman target sys/sys@rman

恢复管理器:版本8.1.7.0.0 - Production

RMAN-06005:连接到目标数据库:RMAN (DBID=1303772234)

RMAN>connect catalog rman/rman@cc

RMAN-06008:连接到恢复目录数据库

RMAN>register database;

RMAN-03022:正在编译命令:register

RMAN-03023:正在执行命令:register

RMAN-08006:注册在恢复目录中的数据库

RMAN-03023:正在执行命令:full resync

RMAN-08002:正在启动全部恢复目录的resync

RMAN-08004:完成全部resync

好了,到此为止前面的准备工作都做好了,下面就可以使用RMAN 来进行备份和恢复了。

四、使用RMAN

下面通过具体的例子来说明RMAN 的使用,这里会涉及到除了恢复以外的所有RMAN 操作,关于使用RMAN 进行恢复的内容请参考我以前写的另外一篇文章:RMAN 恢复实践。

1、备份整个数据库

RMAN>run {

2> allocate channel c1 type disk;

3> backup database format 'e:\dbbackup\2db.dmp';

4> }

2、复制数据文件

RMAN>run {

2> allocate channel c1 type disk;

3> copy datafile 'c:\oracle\oradata\rman\users01.dbf' to 'e:\dbbackup\u.dbf' tag

=u1215;

4> }

3、查看备份及复制的信息

RMAN>list backup;

RMAN-03022:正在编译命令:list

备份集列表

关键字Recid 标记LV 集合标记集合计数完成时间

------- ---------- ---------- -- ---------- ---------- ----------------------

216 1 417347013 0 417346992 1 26-12 月-00

备份段列表

关键字Pc# Cp# 状态完成时间段名

------- --- --- ----------- ---------------------- ------------------------

217 1 1 AVAILABLE 26-12 月-00 E:\DBBACKUP\2DB.DMP

数据文件包括列表

文件名称LV 类型检查点SCN 检查点时间

---- ------------------------------------- -- ---- ---------- -------------

1 C:\ORACLE\ORADATA\RMAN\SYSTEM01.DBF 0 Full 33224 26-12 月-00

2 C:\ORACLE\ORADATA\RMAN\RBS01.DBF 0 Full 33224 26-12 月-00

3 C:\ORACLE\ORADATA\RMAN\USERS01.DBF 0 Full 33224 26-12 月-00

4 C:\ORACLE\ORADATA\RMAN\TEMP01.DBF 0 Full 33224 26-12 月-00

5 C:\ORACLE\ORADATA\RMAN\TOOLS01.DBF 0 Full 33224 26-12 月-00

6 C:\ORACLE\ORADATA\RMAN\INDX01.DBF 0 Full 33224 26-12 月-00

RMAN>list copy of datafile 'c:\oracle\oradata\rman\users01.dbf';

RMAN-03022:正在编译命令:list

数据文件备份列表

关键字文件状态完成时间检查点SCN 检查点时间名称

------- ---- - --------------- ---------- --------------- ------

226 3 A 26-12 月-00 33226 26-12 月-00 E:\DBBACKUP\U.DBF

4、在备份是设置相关参数

format --文件输出格式,

%d--database name,

%s--backup sets sequence number,

%p--backup pieces sequence number

filesperset --每个备份集中所包括的文件数

更多参数请参考本文开始时列出的书。

RMAN>run {

2> allocate channel c1 type disk;

3> set limit channel c1 kbytes 8000;

4> backup

5> format 'e:\dbbackup\db_%d_%s_%p.bck'

6> (database filesperset=2 );

7> }

RMAN-03022:正在编译命令:allocate

RMAN-03023:正在执行命令:allocate

RMAN-08030:分配的通道:c1

RMAN-08500:通道c1:sid=9 devtype=DISK

RMAN-03022:正在编译命令:set limit

RMAN-03023:正在执行命令:set limit

RMAN-03022:正在编译命令:backup

RMAN-03023:正在执行命令:backup

RMAN-08008:通道c1:正在启动full 数据文件备份集

RMAN-08502:set_count=6 set_stamp=417351064 creation_time=26-12 月-00

RMAN-08010:通道c1:正在指定备份集中的数据文件

RMAN-08522:输入数据文件fno=00003 name=C:\ORACLE\ORADATA\RMAN\USERS01.DBF

RMAN-08522:输入数据文件fno=00005 name=C:\ORACLE\ORADATA\RMAN\TOOLS01.DBF

RMAN-08013:通道c1:已创建1 段

RMAN-08503:段handle=E:\DBBACKUP\DB_RMAN_6_1.BCK comment=NONE

RMAN-08525:备份集完成,经过时间:00:00:03

RMAN-08008:通道c1:正在启动full 数据文件备份集

RMAN-08502:set_count=7 set_stamp=417351067 creation_time=26-12 月-00

RMAN-08010:通道c1:正在指定备份集中的数据文件

RMAN-08522:输入数据文件fno=00002 name=C:\ORACLE\ORADATA\RMAN\RBS01.DBF

RMAN-08522:输入数据文件fno=00006 name=C:\ORACLE\ORADATA\RMAN\INDX01.DBF

RMAN-08013:通道c1:已创建1 段

RMAN-08503:段handle=E:\DBBACKUP\DB_RMAN_7_1.BCK comment=NONE

RMAN-08525:备份集完成,经过时间:00:00:04

RMAN-08008:通道c1:正在启动full 数据文件备份集

RMAN-08502:set_count=8 set_stamp=417351071 creation_time=26-12 月-00

RMAN-08010:通道c1:正在指定备份集中的数据文件

RMAN-08522:输入数据文件fno=00001 name=C:\ORACLE\ORADATA\RMAN\SYSTEM01.DBF

RMAN-08011:备份集中包括当前控制文件

RMAN-08013:通道c1:已创建1 段

RMAN-08503:段handle=E:\DBBACKUP\DB_RMAN_8_1.BCK comment=NONE

RMAN-08013:通道c1:已创建2 段

RMAN-08503:段handle=E:\DBBACKUP\DB_RMAN_8_2.BCK comment=NONE

RMAN-08013:通道c1:已创建3 段

RMAN-08503:段handle=E:\DBBACKUP\DB_RMAN_8_3.BCK comment=NONE

RMAN-08013:通道c1:已创建4 段

RMAN-08503:段handle=E:\DBBACKUP\DB_RMAN_8_4.BCK comment=NONE

RMAN-08013:通道c1:已创建5 段

RMAN-08503:段handle=E:\DBBACKUP\DB_RMAN_8_5.BCK comment=NONE

RMAN-08013:通道c1:已创建6 段

RMAN-08503:段handle=E:\DBBACKUP\DB_RMAN_8_6.BCK comment=NONE

RMAN-08013:通道c1:已创建7 段

RMAN-08503:段handle=E:\DBBACKUP\DB_RMAN_8_7.BCK comment=NONE

RMAN-08525:备份集完成,经过时间:00:00:19

.... ....

RMAN-08008:通道c1:正在启动full 数据文件备份集

RMAN-08502:set_count=9 set_stamp=417351090 creation_time=26-12 月-00

RMAN-08010:通道c1:正在指定备份集中的数据文件

RMAN-08522:输入数据文件fno=00004 name=C:\ORACLE\ORADATA\RMAN\TEMP01.DBF

RMAN-08013:通道c1:已创建1 段

RMAN-08503:段handle=E:\DBBACKUP\DB_RMAN_9_1.BCK comment=NONE

RMAN-08525:备份集完成,经过时间:00:00:07

RMAN-03023:正在执行命令:partial resync

RMAN-08003:启动部分恢复目录的resync

RMAN-08005:完成部分resync

RMAN-08031:释放的通道:c1

5、使用脚本功能

使用脚本的目的在于方便我们操作中的方便,操作上和存储过程相似。

RMAN>create script l0dbbackup {

2> allocate channel c1 type disk;

3> backup

4> format 'e:\dbbackup\db_%d_%s_%p.bck'

5> (database filesperset=2 );

6> }

RMAN-03022:正在编译命令:create script

RMAN-03023:正在执行命令:create script

RMAN-08085:已创建脚本l0dbbackup

RMAN>run {execute script l0dbbackup; }

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有