四. 恢复目录

Oracle 在RMAN存储库中维护与RMAN操作相关的所有元数据。RMAN存储库总是被存储在目标数据库的控制文件中,我们可以用另一个位置存储数据

的RMAN存储库。 这就是RMAN恢复目录。

在大多数操作中,RMAN 都不要恢复目录,因此在许多情况下,恢复目录实际上是一个可选的组件。 因为恢复目录在很大程度上可选,所以RMAN

的默认配置中没有恢复目录。


4.1 恢复目录的定义

恢复目录是RMAN的一个可选组件,它存储来自RMAN备份的历史备份信息。 与数据库控制文件的RMAN信息不同,恢复目录数据不是定期的进行清楚

,因此恢复目录会保存比控制文件更多的历史信息。 使用恢复目录比只使用数据库控制文件有更多的优点,这些优点包括:

(1) 如果要使用存储的RMAN脚本,就必须使用恢复目录

(2) 恢复目录提供存储全企业RMAN信息的单一存储库,它可以更方便,灵活地集中存储企业的备份信息

(3) 由于可以在当前时间之外的时间报告目标数据库的信息,所以恢复目录使得报告起来更有灵活性。

(4) 使用恢复目录可以保留某些默认的数据库RMAN 通道配置信息。

如果你是RMAN 老手,就会注意到这里缺少一些优点:

(1)Oracle 10g可以很容易的在没有恢复目录的情况下通过resetlogs 支持恢复

(2)如果使用控制文件自动备份,则不在需要将恢复目录用于控制文件恢复。

注意:如果不会使用恢复目录,则保存对数据库DBID的记录。 虽然这不是必须的内容,但是数据库的DBID很有用,而且使用DBID可以简化恢复操

作。

C:/Users/Administrator.DavidDai>rman target /

恢复管理器: Release 11.2.0.1.0 - Production on 星期三 6月 16 19:48:48 2010

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

连接到目标数据库: MYNEWCCS (DBID=1108507251)

SQL> select dbid from v$database;

DBID

----------

1108507251


是否应该使用恢复目录?

如果只有很少的一些数据库,则恢复目录就可能不值得话费额外的时间和精力在它上面。 如果有许多数据库,则应该考虑使用恢复目录。 一般

来说,恢复目录带来的灵活性和集中的全企业报告优点在价值上超过了它所增加的维护和管理成本。 然而,使用恢复目录的一个缺点在于,如果

目录数据库关闭,则所有备份都会失败,除非已经编码的脚本,从而在使用恢复目录的第一个备份失败时,执行没有恢复目录的备份。

此外,恢复目录是数据保护备份环境和分割镜像(split mirror)备份的基础部分。 在这些配置中,当备份来自于备份主机的数据库时,可以认

为恢复目录是最近的信息,因此它是该策略的核心内容,若维护不当则成为失败的×××。记住,底线是看环境是否需要恢复目录。

连接RMAN时,必须使用catalog 命令行参数来表明将要建立RMAN与恢复目录的连接。在默认情况下,RMAN使用nocatalog 选项,该选项表明不使

用恢复目录。使用catalog 参数后,需要指明包含恢复目录对象的恢复目录模式的用户ID 和口令。

如: rman target 'sys/pwd as sysdba@sid' catalog 'user/pwd@SID2';


4.2 创建恢复目录

4.2.1 配置恢复目录数据库

恢复目录数据库应该尽可能存在于敦力的数据库上。 然后,根据我们的经验,许多站点使用活动数据库作为恢复目录数据库,只要在备份数据库

时采取预防措施,这也是可行的。每个注册的数据库可以分配20M左右的表空间。

SQL> create tablespace rman_ts datafile 'D:/APP/ADMINISTRATOR/ORADATA/MYNEWCCS/rmants.dbf'  size 20M;

表空间已创建。


4.2.2 创建恢复目录用户

 恢复目录用户需要connect,resource,recovery_catalog_owner 权限。

SQL> Create user rcat_dave identified by rcat_dave default tablespace rman_ts;

用户已创建。

SQL> Grant connect,resource,recovery_catalog_owner to rcat_dave;

授权成功。


4.2.3 创建恢复目录模式对象

创建恢复目录在Oracle 10g中是一个简单的过程,该过程仅需要使用RMAN。 启动RMAN时,使用target 参数连接目标数据库,再使用catalog参数

连接恢复目录数据库模式。 最后在RMAN 提示符下执行 create catalog命令即可。

C:/Users/Administrator.DavidDai>rman target 'sys/admin as sysdba@mynewccs' catalog 'rcat_dave/rcat_dave@mynewccs';

恢复管理器: Release 11.2.0.1.0 - Production on 星期三 6月 16 21:34:56 2010

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

连接到目标数据库: MYNEWCCS (DBID=1108507251)

连接到恢复目录数据库

RMAN> create catalog tablespace rman_ts; -- rman_ts 是第一步创建的

恢复目录已创建

RMAN>


4.2.4 在恢复目录中注册数据库

使用恢复目录执行数据库的RMAN备份操作前必须注册数据库。方法如下:

RMAN> register database;

注册在恢复目录中的数据库

正在启动全部恢复目录的 resync

完成全部 resync

用report schema 命令验证是否注册成功:

RMAN> report schema;


4.2.5 删除恢复目录

使用drop_catalog 命令可删除恢复目录模式,不过这样也会使包含在模式中的所有信息都会丢失。因此在删除之前要考虑做好备份。

RMAN> drop catalog;

恢复目录所有者是RCAT_DAVE

再输入一次 DROP CATALOG 命令来确认目录删除

RMAN> drop catalog;

恢复目录已删除

RMAN>


4.2.6 在恢复目录中添加RMAN 备份

如果已经在没有恢复目录的情况下执行了RMAN备份,并且希望在后面将这些备份添加到恢复目录,则可以使用catalog命令。可以将数据文件副本

,备份集片,归档日志备份,甚至整个备份目录添加到目录中。 示例如下:

RMAN>catalog datafilecopy 'D:/APP/ADMINISTRATOR/ORADATA/MYNEWCCS/system01.dbf';

RMAN>catalog archivelog 'D:/APP/ADMINISTRATOR/ORADATA/MYNEWCCS/arch_20.arc';

RMAN>catalog backuppiece 'D:/APP/ADMINISTRATOR/ORADATA/MYNEWCCS/backup_031.bkp';

RMAN>catalog start with 'D:/APP/ADMINISTRATOR/ORADATA/MYNEWCCS/';

注意: 要谨慎使用catalog start with 命令,必须在目录路径结尾加上反斜杠后缀,如果不加将遍历目录下的所有组合. 如:

D:/APP/ADMINISTRATOR/ORADATA/MYNEWCCS-OLD .


4.2.7 在恢复目录中取消数据库注册

可以在RMAN 中使用unregister database 命令来取消数据库注册。如果希望取消已经存在的数据库注册,只要连接到数据库和恢复目录,并执行

unregister database命令即可。

RMAN> unregister database;

如果已经删除数据库,并且希望从恢复目录中删除该数据库,则在大多数情况下只需要知道希望取消注册数据库的名称。

RMAN> unregister database mynewccs;

当恢复目录中有多个相同名称注册的数据库时,就需要知道需要取消注册的数据库的DBID。然后在run 代码块中运行unregister database,同时

使用set dbid 命令。

RMAN> run

{

set dbid 1108507251;

unregister database mynewccs noprompt;}


oracle视频教程请关注:http://u.youku.com/user_video/id_UMzAzMjkxMjE2.html