RMAN恢复目录

 


RMAN恢复目录

 

http://dev.firnow.com/course/7_databases/oracle/oraclejs/20091110/181877.html

一,概念

RMAN信息库(RMAN repository) 

备份过程中产生的元数据,包括备份文件的名称、路径、完成备份的时间、检
查点SCN 等这些用来描述备份文件的数据,存放的地点叫做RMAN信息库。RMAN
信息库可以存放在两个不同的地点: 目标数据库的控制文件,或者恢复目录
(Recovery Catalog)里 。


控制文件中存放的数据可以分为两类: 可删除的记录(包括归档日志文件的历史
记录以及RMAN备份的元数据)和不可删除的记录(包括数据文件列表和联机日志文
件列表等),如果需要在控制文件中存放新的记录,则可以通过删除那些可删除的
记录,为新的记录提供可用的空间,如果RMAN备份的元数据被删除,RMAN就不能
获得有关备份的信息,从而也就不能进行恢复了。


可以通过设置初始化参数controlfile_record_keep_time来决定控制文件中可删除
的记录所占用的空间,默认为7,表示控制文件中始终保持最近7天的可删除记录,
也就是说7天之前的备份信息及归档日志文件的历史记录被删除。如果设置为0,可
重用部分就不会扩展,只要需要records就可以被重用。


恢复目录(Recovery Catalog)

为了让备份信息保存更长的时间,Oracle还提供了恢复目录(Recovery Catalog)来
存放RMAN信息库。恢复目录由数据库里的多个表和存储过程组成,这些对象位于同
一个schema下。用表来存放RMAN备份的元数据,可以永久性的保存下去,而不用删
除历史记录来释放空间。恢复目录是可选的配置,不是必需的。

 

 

 


二, 恢复目录创建及测试 

我们使用下面的步骤创建恢复目录及测试 : 


1). 建立catalog數據庫(假设名称为rman)  
2). 建立用于恢复目录的表空间
    SQL> create tablespace rcat_tbs datafile 
      'D:\oracle\product\10.2.0\oradata\rman\rman_tbs01.dbf' size 200M;
3). 建立用户 
    SQL> create user rman_cat identified by oracle default tablespace
       rcat_tbs temporary tablespace temp ;
    SQL> alter user rman_cat quota unlimited on rcat_tbs;
    SQL> grant recovery_catalog_owner to rman_cat ;
    SQL> grant connect , resource to rman_cat ;
4). 创建恢复目录 (创建恢复目录都做了什么 ??? ) 
    C:\>rman  catalog  rman_cat/oracle@rman01
     恢复管理器: Release 10.2.0.1.0 - Production on 星期一 5月 23 09:15:42 2011
     Copyright (c) 1982, 2005, Oracle.  All rights reserved.
     连接到恢复目录数据库
   RMAN> create catalog tablespace rcat_tbs ; 
     恢复目录已创建
5). 通过RMAN连接到目标库和恢复目录后,将目标库注册到恢复目录中。
   C:\>rman  target sys/oracle@test01  catalog  rman_cat/oracle@rman01
    恢复管理器: Release 10.2.0.1.0 - Production on 星期一 5月 23 09:19:38 2011
    Copyright (c) 1982, 2005, Oracle.  All rights reserved.
    连接到目标数据库: TEST01 (DBID=3556425887)
    连接到恢复目录数据库
  RMAN> register database;
   注册在恢复目录中的数据库
   正在启动全部恢复目录的 resync
   完成全部 resync

6). RMAN备份(测试) 

RMAN> backup device type disk format 'D:\rmanbak\%U' database plus archivelog;

启动 backup 于 23-5月 -11
当前日志已存档
分配的通道: ORA_DISK_1
通道 ORA_DISK_1: sid=138 devtype=DISK
通道 ORA_DISK_1: 正在启动存档日志备份集     -- RMAN首先备份归档日志
通道 ORA_DISK_1: 正在指定备份集中的存档日志
输入存档日志线程 =1 序列 =2 记录 ID=1 时间戳=749647947
输入存档日志线程 =1 序列 =3 记录 ID=2 时间戳=749647948
输入存档日志线程 =1 序列 =4 记录 ID=3 时间戳=749647948
输入存档日志线程 =1 序列 =5 记录 ID=4 时间戳=749985337
输入存档日志线程 =1 序列 =6 记录 ID=5 时间戳=750151960
输入存档日志线程 =1 序列 =7 记录 ID=6 时间戳=750930950
输入存档日志线程 =1 序列 =8 记录 ID=7 时间戳=751016900
输入存档日志线程 =1 序列 =9 记录 ID=8 时间戳=751275452
输入存档日志线程 =1 序列 =10 记录 ID=9 时间戳=751448005
输入存档日志线程 =1 序列 =11 记录 ID=10 时间戳=751462753
输入存档日志线程 =1 序列 =12 记录 ID=11 时间戳=751462820
输入存档日志线程 =1 序列 =13 记录 ID=12 时间戳=751534217
输入存档日志线程 =1 序列 =14 记录 ID=13 时间戳=751621423
输入存档日志线程 =1 序列 =15 记录 ID=14 时间戳=751887465
通道 ORA_DISK_1: 正在启动段 1 于 23-5月 -11
通道 ORA_DISK_1: 已完成段 1 于 23-5月 -11
段句柄=D:\RMANBAK\07MD1P3C_1_1 标记=TAG20110523T093747 注释=NONE
通道 ORA_DISK_1: 备份集已完成, 经过时间:00:00:17
完成 backup 于 23-5月 -11

启动 backup 于 23-5月 -11
使用通道 ORA_DISK_1
通道 ORA_DISK_1: 启动全部数据文件备份集        -- 然后RMAN备份数据文件  
通道 ORA_DISK_1: 正在指定备份集中的数据文件
输入数据文件 fno=00001 name=D:\ORACLE\PRODUCT\10.2.0\ORADATA\TEST01\SYSTEM01.DBF
输入数据文件 fno=00003 name=D:\ORACLE\PRODUCT\10.2.0\ORADATA\TEST01\SYSAUX01.DBF
输入数据文件 fno=00002 name=D:\ORACLE\PRODUCT\10.2.0\ORADATA\TEST01\UNDOTBS01.DBF
输入数据文件 fno=00004 name=D:\ORACLE\PRODUCT\10.2.0\ORADATA\TEST01\USERS01.DBF
通道 ORA_DISK_1: 正在启动段 1 于 23-5月 -11
通道 ORA_DISK_1: 已完成段 1 于 23-5月 -11
段句柄=D:\RMANBAK\08MD1P3U_1_1 标记=TAG20110523T093805 注释=NONE
通道 ORA_DISK_1: 备份集已完成, 经过时间:00:00:45

通道 ORA_DISK_1: 启动全部数据文件备份集
通道 ORA_DISK_1: 正在指定备份集中的数据文件
备份集中包括当前控制文件                -- 随后RMAN备份控制文件及spfile 
在备份集中包含当前的 SPFILE
通道 ORA_DISK_1: 正在启动段 1 于 23-5月 -11
通道 ORA_DISK_1: 已完成段 1 于 23-5月 -11
段句柄=D:\RMANBAK\09MD1P5B_1_1 标记=TAG20110523T093805 注释=NONE
通道 ORA_DISK_1: 备份集已完成, 经过时间:00:00:03
完成 backup 于 23-5月 -11 

启动 backup 于 23-5月 -11
当前日志已存档
使用通道 ORA_DISK_1
通道 ORA_DISK_1: 正在启动存档日志备份集      -- 最后备份备份过程中生成的归档日志
通道 ORA_DISK_1: 正在指定备份集中的存档日志
输入存档日志线程 =1 序列 =16 记录 ID=15 时间戳=751887534
通道 ORA_DISK_1: 正在启动段 1 于 23-5月 -11
通道 ORA_DISK_1: 已完成段 1 于 23-5月 -11
段句柄=D:\RMANBAK\0AMD1P5F_1_1 标记=TAG20110523T093855 注释=NONE
通道 ORA_DISK_1: 备份集已完成, 经过时间:00:00:02
完成 backup 于 23-5月 -11

 

备注: 如果目标数据库是mounted状态,也可以备份,只是连接到目标库的时候
显示为未打开状态 (或者英文显示为mounted) 。 
C:\>rman  target sys/oracle@test01  catalog  rman_cat/oracle@rman01
恢复管理器: Release 10.2.0.1.0 - Production on 星期一 6月 13 13:43:35 2011
Copyright (c) 1982, 2005, Oracle.  All rights reserved.
已连接到目标数据库: TEST01 (DBID=3556425887, 未打开)
连接到恢复目录数据库
RMAN> backup device type disk format 'D:\rmanbak\%U' database plus archivelog; 

 


通过下面命令查看备份的内容:

RMAN> list backup ; 
RMAN> list backup of controlfile ;  列出备份的控制文件对应的备份集
RMAN> list backup of spfile ;       列出备份的spfile文件对应的备份集
RMAN> list backup of archivelog all;  列出备份的归档日志及对应的备份集
RMAN> list backup of database;    列出备份的数据文件及对应的备份集
RMAN> list backup of datafile 2;  列出某个数据文件(号码)所在的备份集合。

 


查看恢复目录中到底有哪些table及procedure或packages.

看到用户rman_cat下table名称(37个) :
AL
BCB
BCF
BDF
BP
BRL
BS
BSF
CCB
CCF
CDF
CKP
CONF
CONFIG
DB
DBINC
DF
DFATT
FB
NODE
OFFR
ORL
RCVER
RLH
ROUT
RR
RSR
RT
SCR
SCRL
TF
TFATT
TS
TSATT
XAL
XCF
XDF

 

看到用户rman_cat下有两个package,没有看到procedure :
DBMS_RCVCAT
DBMS_RCVMAN

 

看到用户rman_cat下有53个视图

RC_ARCHIVED_LOG
RC_BACKUP_ARCHIVELOG_DETAILS
RC_BACKUP_ARCHIVELOG_SUMMARY
RC_BACKUP_CONTROLFILE
RC_BACKUP_CONTROLFILE_DETAILS
RC_BACKUP_CONTROLFILE_SUMMARY
RC_BACKUP_COPY_DETAILS
RC_BACKUP_COPY_SUMMARY
RC_BACKUP_CORRUPTION
RC_BACKUP_DATAFILE
RC_BACKUP_DATAFILE_DETAILS
RC_BACKUP_DATAFILE_SUMMARY
RC_BACKUP_FILES
RC_BACKUP_PIECE
RC_BACKUP_PIECE_DETAILS 
RC_BACKUP_REDOLOG
RC_BACKUP_SET
RC_BACKUP_SET_DETAILS
RC_BACKUP_SET_SUMMARY
RC_BACKUP_SPFILE
RC_BACKUP_SPFILE_DETAILS
RC_BACKUP_SPFILE_SUMMARY
RC_CHECKPOINT
RC_CONTROLFILE_COPY
RC_COPY_CORRUPTION
RC_DATABASE
RC_DATABASE_BLOCK_CORRUPTION
RC_DATABASE_INCARNATION
RC_DATAFILE
RC_DATAFILE_COPY
RC_LOG_HISTORY
RC_OFFLINE_RANGE
RC_PROXY_ARCHIVEDLOG
RC_PROXY_ARCHIVELOG_DETAILS
RC_PROXY_ARCHIVELOG_SUMMARY
RC_PROXY_CONTROLFILE
RC_PROXY_COPY_DETAILS
RC_PROXY_COPY_SUMMARY
RC_PROXY_DATAFILE
RC_REDO_LOG
RC_REDO_THREAD
RC_RESYNC
RC_RMAN_BACKUP_JOB_DETAILS
RC_RMAN_BACKUP_SUBJOB_DETAILS
RC_RMAN_BACKUP_TYPE
RC_RMAN_CONFIGURATION
RC_RMAN_OUTPUT
RC_RMAN_STATUS
RC_STORED_SCRIPT
RC_STORED_SCRIPT_LINE
RC_TABLESPACE
RC_TEMPFILE
RC_UNUSABLE_BACKUPFILE_DETAILS

 

 

 

 


在recover.bsq文件包含的PL/SQL块中,主要调用了目标数据库中以下两个程序包:

DBMS_RCVMAN : 用来读取目标库的控制文件信息,将这些信息传给RMAN, 从而RMAN
可以获得要备份的文件列表以及其他所需的信息。

dbms_backup_restore :  完成具体的备份恢复工作,并在控制文件中写入备份的元
数据,比如创建备份的时间,路径,大小等。

 

在回复目录库中有两个packages也有两个packages :

DBMS_RCVMAN
DBMS_RCVCAT


catalog是和controlfile保持同步的

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

转载于:http://blog.itpub.net/35489/viewspace-696092/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值