博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
RMAN初学者指南(转)
阅读量:2449 次
发布时间:2019-05-10

本文共 5610 字,大约阅读时间需要 18 分钟。

RMAN初学者指南(转)[@more@]

  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:oracleoradatacc mants.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:dbbackup2db.dmp';

  4> }

  2、复制数据文件

  RMAN>run {

  2> allocate channel c1 type disk;

  3> copy datafile 'c:oracleoradata manusers01.dbf' to 'e:dbbackupu.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:DBBACKUP2DB.DMP

  数据文件包括列表

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

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

  1 C:ORACLEORADATARMANSYSTEM01.DBF 0 Full 33224 26-12 月-00

  2 C:ORACLEORADATARMANRBS01.DBF 0 Full 33224 26-12 月-00

  3 C:ORACLEORADATARMANUSERS01.DBF 0 Full 33224 26-12 月-00

  4 C:ORACLEORADATARMANTEMP01.DBF 0 Full 33224 26-12 月-00

  5 C:ORACLEORADATARMANTOOLS01.DBF 0 Full 33224 26-12 月-00

  6 C:ORACLEORADATARMANINDX01.DBF 0 Full 33224 26-12 月-00

  RMAN>list copy of datafile 'c:oracleoradata manusers01.dbf';

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

  数据文件备份列表

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

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

  226 3 A 26-12 月-00 33226 26-12 月-00 E:DBBACKUPU.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:dbbackupdb_%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:ORACLEORADATARMANUSERS01.DBF

  RMAN-08522:输入数据文件fno=00005 name=C:ORACLEORADATARMANTOOLS01.DBF

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

  RMAN-08503:段handle=E:DBBACKUPDB_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:ORACLEORADATARMANRBS01.DBF

  RMAN-08522:输入数据文件fno=00006 name=C:ORACLEORADATARMANINDX01.DBF

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

  RMAN-08503:段handle=E:DBBACKUPDB_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:输入

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/8225414/viewspace-956977/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/8225414/viewspace-956977/

你可能感兴趣的文章
双耳节拍 枕头_枕头3-0-0不在
查看>>
我第一次使用matplotlib
查看>>
spark中遇到的问题_ScienceCluster遇到Spark
查看>>
输入/help获取更多指令_更多HTTP / 2新闻
查看>>
rodeo python_Rodeo 1.0:台式机上的Python IDE
查看>>
MongoDB和Python简介
查看>>
django 认证_Django中的LinkedIn社会认证
查看>>
上海流浪汉沈_Windows上的流浪汉
查看>>
2016年12月14日的安全链接垃圾邮件
查看>>
535cf_CF对象存储
查看>>
命题逻辑真值表_命题逻辑
查看>>
openbsd_OpenBSD对psutil的支持
查看>>
emacs python_Emacs –最好的python编辑器?
查看>>
熊猫作弊表(通过yhat)
查看>>
将React Native升级到最新版本的最简单方法
查看>>
python 图像格式转换_如何用六行Python构建图像类型转换器
查看>>
url散列算法原理_如何列出与网站相关的所有URL
查看>>
如何在React Native中创建精美的动画加载器
查看>>
谷歌聊天机器人api_如何编写针对Google地图等网络应用量身定制的聊天机器人
查看>>
npm和angular_如何开发,使用和发布Angular库到NPM
查看>>