且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

使用RMAN恢复目录(catalog)解析

更新时间:2021-09-06 17:28:51

首先理解什么是catalog 恢复目录,实际上就是把数据库的一部分分出来作为catalog,来长时间存备份信息,在实际生产中,有时候会遇到要恢复数据库到一年或是更长时间之前的状态,我们知道控制文件存在很多重要的数据库结构信息,但是你的控制文件早已经被覆盖,你就不能完成任务,而catalog就不一样了,它可以保存很长时间,当然它也不只是可以存控制文件,也可以存别的备份副本,你可以把它简单的理解成保存时间长的控制文件,已经在控制文件清除的信息,重新加载回来。
1,创建恢复目录所有者默认表空间

SYS@ENMOEDU> create tablespace ts_catalog datafile '/u01/app/oracle/oradata/ENMOEDU/ts_catalog.dbf' size 15m; 

Tablespace created.

2,创建恢复目录所有者

SYS@ENMOEDU> create user rcower identified by oracle default tablespace ts_catalog ; 

User created.
SYS@ENMOEDU> grant connect,resource ,recovery_catalog_owner to rcower;               

Grant succeeded.

3.创建恢复目录

[oracle@ENMOEDU ~]$ rman catalog rcower/oracle@ENMOEDU             #catalog库连接到另一个目标数据库的的网络服务名(就是tnsname.ora 中开头的名字)为ENMOEDU

Recovery Manager: Release 11.2.0.3.0 - Production on Fri Aug 15 00:37:55 2014 

Copyright (c) 1982, 2011, Oracle and/or its affiliates. All rights reserved. 

connected to recovery catalog database 

RMAN> create catalog;    #自动创建了恢复目录相关的表,

recovery catalog created
注册目标数据库            注册之后目标数据库原文件会同步到catalog  
[oracle@ENMOEDU ~]$ rman target sys/oracle@ENMOEDU catalog rcower/oracle@ENMOEDU; 

Recovery Manager: Release 11.2.0.3.0 - Production on Fri Aug 15 00:47:57 2014 

Copyright (c) 1982, 2011, Oracle and/or its affiliates. All rights reserved. 

connected to target database: ENMOEDU (DBID=87396644) 
connected to recovery catalog database
RMAN> register database; 

database registered in recovery catalog 
starting full resync of recovery catalog 
full resync complete 
查看已经注册的目标库
[oracle@ENMOEDU ~]$ sqlplus rcower/oracle@ENMOEDU                     

SQL*Plus: Release 11.2.0.3.0 Production on Fri Aug 15 00:51:27 2014 

Copyright (c) 1982, 2011, Oracle. All rights reserved. 


Connected to: 
Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - Production 
With the Partitioning, OLAP, Data Mining and Real Application Testing options 

RCOWER@ENMOEDU> SELECT * FROM RC_DATABASE; 

DB_KEY DBINC_KEY DBID NAME RESETLOGS_CHANGE# RESETLOGS 
---------- ---------- ---------- -------- ----------------- --------- 
1 2 87396644 ENMOEDU 1 07-OCT-13
从恢复目录中注销目标数据库
oracle@ENMOEDU ~]$ rman target sys/oracle@ENMOEDU catalog rcower/oracle@ENMOEDU;             #目标库和catalog库可以为同一个库,但是实际上是没有意义的,因为你库打不开时,是无法使用catalog的

Recovery Manager: Release 11.2.0.3.0 - Production on Fri Aug 15 00:47:57 2014 

Copyright (c) 1982, 2011, Oracle and/or its affiliates. All rights reserved. 

connected to target database: ENMOEDU (DBID=87396644) 
connected to recovery catalog database
RMAN> unregister database; 
 将其他备份副本导入到恢复目录,
oracle@ENMOEDU ~]$ rman target sys/oracle@ENMOEDU catalog rcower/oracle@ENMOEDU;   
Recovery Manager: Release 11.2.0.3.0 - Production on Fri Aug 15 00:47:57 2014 

Copyright (c) 1982, 2011, Oracle and/or its affiliates. All rights reserved. 

connected to target database: ENMOEDU (DBID=87396644) 
connected to recovery catalog database
将一个文件导入恢复目录  
RMAN> catalog backuppiece                               '/u01/app/oracle/fast_recovery_area/ENMOEDU/backupset/2014_08_16/o1_mf_nnndf_TAG20140816T113253_9yxn76sb_.bkp';
using target database control file instead of recovery catalog
cataloged backup piece
backup piece handle=/u01/app/oracle/fast_recovery_area/ENMOEDU/backupset/2014_08_16/o1_mf_nnndf_TAG20140816T113253_9yxn76sb_.bkp RECID=26 STAMP=855748159

如果使用了快速恢复区,可以这样一次性导入。

RMAN> catalog recovery area noprompt;
searching for all files in the recovery area
no files found to be unknown to the database
List of files in Recovery Area not managed by the database
==========================================================
File Name: /u01/app/oracle/fast_recovery_area/ENMOEDU/control02.ctl
  RMAN-07526: Reason: File is not an Oracle Managed File
number of files not managed by recovery area is 1, totaling 9.38MB

本文转自ICT时空 dbasdk博客,原文链接:使用RMAN恢复目录(catalog)解析 ,如需转载请自行联系原博主。