首页 > 代码库 > [转]使用RMAN恢复目录

[转]使用RMAN恢复目录

? 对恢复目录和RMAN 资料档案库控制文件的使用进行比较
? 创建和配置恢复目录
? 在恢复目录中注册数据库
? 同步恢复目录
? 使用RMAN 存储脚本
? 备份恢复目录
? 创建虚拟专用目录
 
 
  • RMAN 资料档案库数据存储:比较选项
控制文件:
? 管理更简单
? 默认设置
恢复目录:
? 复制控制文件数据
? 存储更长的备份历史记录
? 服务于多个目标
? 存储RMAN 脚本
 
RMAN 资料档案库数据始终存储在目标数据库的控制文件中。此外,它也可以存储在一个名为“恢复目录”的单独数据库中。
恢复目录会在单独的数据库中保留备份信息,这在控制文件丢失时尤为有用。这样你可以存储更长的备份历史记录,比基于控制文件的资料档案库所存储的历史记录还要长。使用一个恢复目录可存储多个目标数据库的信息。恢复目录还可用来存放RMAN 存储脚本,这些脚本是RMAN 命令的序列。
如果你的备份管理要求很简单,则Oracle 建议你使用控制文件选项而不要使用恢复目录。拥有恢复目录意味着你需要管理并备份其它数据库。因此,只有在可利用恢复目录所提供的优点(如较长的备份保留时间)时,才使用恢复目录。
 
  • 在恢复目录中存储信息
在执行更新资料档案库的任何操作之后以及执行某些操作之前,RMAN 会将关于数据库结构、归档重做日志、备份集和数据文件副本的信息从目标数据库控制文件中传播到恢复目录中。
 
  • 使用恢复目录的原因
? 与控制文件相比可以存储更多的历史信息
? 可使用RMAN 存储脚本
? 可为所有已注册目标创建自定义报告
? 可以使用BACKUP命令的KEEP FOREVER子句
? 可以列出在给定时间位于或曾经位于目标数据库中的数据文件和表空间
 
虽然可以使用控制文件作为RMAN 的唯一资料档案库,但是控制文件用于存储备份活动记录的空间有限。使用恢复目录时,可以存储更长的备份历史记录。这样可以恢复到比控制文件中的历史记录更早的时间。
如果要使用RMAN 存储脚本,就必须使用恢复目录。
使用恢复目录时,所有已注册目标的备份和恢复信息都存放在一个位置,因此可通过以恢复目录所有者的身份连接并查询各个RC_视图来创建自定义报告。如果不使用恢复目录,就必须单独连接到每个目标数据库实例并查询V$视图,才能了解目标控制文件中的RMAN 信息。
可以使用BACKUP ... KEEP命令创建备份并使其保留时长不同于所配置的保留策略指定的时长。KEEP FOREVER子句指定备份或副本永不失效并要求使用恢复目录,以便备份记录可无限期保留。
REPORT SCHEMA命令列出目标数据库中的表空间和数据文件。如果添加AT [time|scn|logseq]选项,则可以查看过去某个时间的信息。只有在使用恢复目录时才能使用AT选项。
 
  • 创建恢复目录:三个步骤
要创建恢复目录,请执行以下三个步骤:
1. 配置要在其中存储恢复目录的数据库。
http://blog.csdn.net/rlhua/article/details/13298785
2. 创建恢复目录所有者。
http://blog.csdn.net/rlhua/article/details/13310351
3. 创建恢复目录。
http://blog.csdn.net/rlhua/article/details/13311749
 
  • 配置恢复目录数据库
? 分配恢复目录使用的空间。以下是需要考虑的因素:
– 恢复目录支持的数据库数
– 记录的归档重做日志文件数和备份数
– 使用RMAN 存储脚本
? 创建恢复目录所用的表空间,这将成为恢复目录所有者的默认表空间。
SQL> CREATE TABLESPACE rcat_ts DATAFILE SIZE 15M;
确定要在其中安装恢复目录方案的数据库。请务必考虑此数据库的备份和恢复过程。
恢复目录方案所需的空间量取决于恢复目录监视的数据库数。所需空间随每个数据库的归档重做日志文件数和备份数的增加而增加。如果使用RMAN 存储脚本,则必须分配这些脚本使用的空间。在恢复目录中注册的每个数据库的示例空间需求为15 MB。
 
  • 创建恢复目录所有者
? 创建恢复目录所有者。
? 授予RECOVERY_CATALOG_OWNER角色。
SQL> CREATE USER rcowner IDENTIFIED BY rcpass
2 TEMPORARY TABLESPACE temp
3 DEFAULT TABLESPACE rcat_ts
4 QUOTA UNLIMITED ON rcat_ts;
SQL> GRANT recovery_catalog_owner TO rcowner;
创建一个作为恢复目录所有者的用户。将此用户的默认表空间设置为你为恢复目录创建的表空间。请务必为该用户提供对该表空间的UNLIMITED限额。创建用户之后,请为其授予RECOVERY_CATALOG_OWNER角色。RECOVERY_CATALOG_OWNER角色提供恢复目录所有者的权限。该角色包含下列系统权限:ALTER SESSION、CREATE CLUSTER、
CREATE DATABASE LINK、CREATE PROCEDURE、CREATE SEQUENCE、CREATE 
SESSION、CREATE SYNONYM、CREATE TABLE、CREATE TRIGGER、CREATE TYPE
和CREATE VIEW。
可以使用SQL 命令或Oracle Enterprise Manager 创建用户并授予角色。
 
 
  • 创建恢复目录
? 以目录所有者的身份连接到恢复目录数据库:
$ rman
RMAN> CONNECT CATALOG username/password@net_service_name
? 执行CREATE CATALOG命令:
RMAN> CREATE CATALOG;
 
 
创建目录所有者后,请使用RMAN CREATE CATALOG命令在目录所有者的默认表空间中创建目录表。
注:与任何数据库一样,如果ORACLE_SID环境变量设置为恢复目录数据库的SID,则不需要在CONNECT语句中提供net_service_name。
 
  • 管理恢复目录中的目标数据库记录
? 在恢复目录中注册目标数据库
? 将其它备份文件列入目录
? 从恢复目录中注销目标数据库
 
虽然大多数信息会自动从控制文件传播到恢复目录中,但还是需要执行一些操作才能在恢复目录中维护目标数据库记录。
 
 
  • 在恢复目录中注册数据库
http://blog.csdn.net/rlhua/article/details/13312411
 
RMAN 会执行下列操作:
? 在恢复目录表中创建目标数据库的行
? 将目标数据库控制文件中的数据复制到恢复目录表
? 使恢复目录与控制文件同步
$ rman TARGET / CATALOG 
username/password@net_service_name
RMAN> REGISTER DATABASE;
创建恢复目录后,必须在恢复目录中注册目标数据库。要注册目标数据库,请执行以下步骤:
1. 调用RMAN 并连接到恢复目录数据库和目标数据库,如下例所示:
% rman TARGET / CATALOG rman/rman@reccatdb
2. 确保目标数据库已装载或已打开。
3. 发出REGISTER命令,在恢复目录中注册目标数据库:
RMAN> REGISTER DATABASE;
 
  • 使用Oracle Enterprise Manager 注册数据库
http://blog.csdn.net/rlhua/article/details/13505341
 
要在恢复目录中注册数据库,请使用Oracle Enterprise Manager (EM) 执行下列步骤:
1. 针对目标数据库运行EM,并导航到“Recovery Catalog Settings(恢复目录设置)”页。
2. 如果该页上没有列出恢复目录,请将其添加到配置中。
3. 指定目标数据库使用从列表中选择的恢复目录。
EM 的注册方法还会导致EM 对与备份和恢复相关的操作使用恢复目录。
 
要使用EM 在恢复目录中注册数据库,必须先将恢复目录添加到EM 配置中。在目标数据
库上运行EM,然后选择该恢复目录作为目标数据库的恢复目录。
如果使用RMAN 注册数据库,而且没有执行示例中的步骤,则使用EM 执行的任何备份和恢复操作将都不使用恢复目录。因此,如果计划使用EM,请执行此处介绍的注册步骤,即使已执行了RMAN REGISTER DATABASE命令也是如此。
在Oracle Enterprise Manager 中:
1. 在“EM Database(EM 数据库)”主页中,导航到“Availability > Recovery Catalog Settings(可用性> 恢复目录设置)”。单击“Add Recovery Catalog(添加恢复目录)”,指定数据库的主机、端口和SID 及现有恢复目录。
2. 定义了恢复目录数据库后,在“Recovery Catalog Setting(恢复目录设置)”页上选择“Use Recovery Catalog(使用恢复目录)”,可在恢复目录数据库中注册数据库。单击“OK(确定)”,即可在目录中注册数据库。
 
  • 从恢复目录中注销目标数据库
? 执行此操作会从恢复目录中删除目标数据库的相关信息。
? 当你不希望目标数据库的定义继续存在于恢复目录中时,请执行此操作。
$ rman TARGET / CATALOG 
username/password@net_service_name
RMAN> UNREGISTER DATABASE;
从恢复目录中注销某一数据库时,恢复目录中的所有RMAN 资料档案库记录都会丢失。
你可以重新注册这个数据库。此时,该数据库的恢复目录记录取决于再次注册时控制文件
的内容。
通常,只有不再需要使用数据库的恢复目录时或数据库不再存在时,才会注销目标数据库。
注:如果是使用Oracle Enterprise Manager Database Control 注册的数据库,则也必须使用它来注销数据库。
 
  • 将其它备份文件列入目录
? CATALOG可用于将不再在控制文件中列出的现有备份文件列入目录。
? 这样,RMAN 即可在执行还原操作期间使用这些文件。
? 使用CATALOG命令可将以下类型的备份文件添加到恢复目录中:
– 控制文件副本
– 数据文件副本
– 备份片段
– 归档重做日志文件
RMAN> CATALOG BACKUPPIECE ‘file_name‘;
 
如果磁盘上有其它控制文件副本、数据文件副本、备份片段或归档重做日志文件,则可使用CATALOG命令将其列入恢复目录。如果某些备份因时间太早已从控制文件中清除,则可将这些备份列入目录,以便RMAN 在执行还原操作期间使用它们。
以下是将控制文件、数据文件、归档重做日志文件和备份片段列入目录的示例:
RMAN> CATALOG CONTROLFILECOPY 
‘/disk1/controlfile_bkup/2009_01_01/control01.ctl‘;
RMAN> CATALOG DATAFILECOPY 
‘/disk1/datafile_bkup/2009_01_01/users01.dbf‘;
RMAN> CATALOG ARCHIVELOG ‘/disk1/arch_logs/archive1_731.log‘,
‘/disk1/arch_logs/archive1_732.log‘;
RMAN> CATALOG BACKUPPIECE ‘/disk1/backups/backup_820.bkp‘;
可以将当前启用的快速恢复区中的所有文件列入目录,如下所示:
RMAN> CATALOG RECOVERY AREA NOPROMPT;
START WITH选项
使用START WITH选项可将在指定目录树中找到的所有文件列入目录。提供表示目录的前缀以及用于查找的可能的文件前缀。不能使用通配符,仅提供一个前缀。
 
指定目录和子目录中找到的所有类型的备份文件都被列入目录。假定在/tmp/arch_logs目录中有多个备份文件。下列命令将所有文件列入目录:
RMAN> CATALOG START WITH ‘/tmp/arch_logs/‘;
假定你只希望将/tmp目录中文件名以字符串bset开头的文件列入目录。下列命令可实现此目的:
RMAN> CATALOG START WITH ‘/tmp/bset‘;
此命令还可将在以/tmp/bset开头的目录树中找到的所有备份文件列入目录。
CATALOG命令可以在不连接到恢复目录的情况下使用。
 
  • 恢复目录重新同步:概念
RMAN 执行重新同步时,会对恢复目录和目标数据库的当前控制文件或备份/备用控制文件进行比较,然后用缺失或更改的信息来更新恢复目录。
重新同步有两种类型:部分和完全。对于部分重新同步,RMAN 会比较控制文件和恢复目录,并使用与备份、归档重做日志、数据文件副本等有关的任何元数据更新恢复目录。
对于完全重新同步,RMAN 先创建控制文件快照,该快照只是控制文件的临时副本。它使用快照与恢复目录进行比较。它比较和更新部分重新同步处理的所有数据,还包括所有数据库结构更改。例如,完全重新同步包括数据库方案更改或新表空间。
注:数据库方案包括数据文件、重做日志文件、归档日志文件、还原段的名称和位置以及在控制文件中找到的其它信息。
如果只对控制文件中由CONTROL_FILE_RECORD_KEEP_TIME控制的记录进行更改,则使用部分重新同步即可。否则,需使用完全重新同步。也可以通过发出RESYNC CATALOG命令执行完全重新同步。
 
 
  • 手动重新同步恢复目录
可在下列情况下手动重新同步恢复目录:
? 发出RMAN 命令以执行部分重新同步时恢复目录不可用
? 因为在发生重做日志切换或归档了重做日志时恢复目录未自动进行更新,所以执行不常执行的目标数据库备份
? 对目标数据库的物理结构进行任何更改后
RMAN> RESYNC CATALOG;
 
  • 使用RMAN 存储脚本
存储脚本是:
? 命令文件的替代方式
? 供可连接到目标数据库和恢复目录的任意RMAN 客户机使用
? 有两种类型:
– 本地:与创建脚本时RMAN 连接到的目标数据库相关联
CREATE SCRIPT script_name
{ <RMAN commands>}
– 全局:可以针对在恢复目录中注册的任何数据库执行
CREATE GLOBAL SCRIPT script_name
{ <RMAN commands> }
? 从文本文件创建(其它选项)
CREATE [GLOBAL] SCRIPT script_name FROM FILE ‘file_name‘;
 
可以作为命令文件的替代方式使用RMAN 存储脚本来管理经常使用的RMAN 命令序列。
存储脚本与命令文件不同,命令文件只可在存储它们的系统中使用,存储脚本始终可供连接到目标数据库和恢复目录的任何RMAN 客户机使用。
存储脚本可以定义为全局存储脚本或本地存储脚本。本地存储脚本与创建脚本时RMAN 连接到的目标数据库相关联,只有连接到该目标数据库时才能执行本地存储脚本。全局存储脚本则可针对在恢复目录中注册的任何数据库执行,前提是RMAN 客户机连接到恢复目录和某一目标数据库。
创建RMAN 存储脚本
连接到所需的目标数据库和恢复目录,然后执行CREATE SCRIPT命令即可创建存储脚本。
 
 
  • 执行RMAN 存储脚本
? 执行脚本:
RUN { EXECUTE SCRIPT
script_name
; }
? 执行全局脚本:
 
RUN { EXECUTEGLOBAL SCRIPT
script_name
; }
 
连接到目标数据库和恢复目录,然后使用EXECUTE SCRIPT命令即可执行存储脚本。请注意,EXECUTE SCRIPT命令需要RUN块。如果脚本中的某一RMAN 命令失败,则不会执行脚本中的后续RMAN 命令。
执行脚本时,脚本将使用当时配置的自动通道。如果需要替换已配置的通道,请在脚本中使用ALLOCATE CHANNEL命令,如下例所示:
RMAN> RUN
{
ALLOCATE CHANNEL ch1 DEVICE TYPE DISK;
ALLOCATE CHANNEL ch2 DEVICE TYPE DISK;
ALLOCATE CHANNEL ch3 DEVICE TYPE DISK;
EXECUTE SCRIPT full_backup;
}
 
  • 维护RMAN 存储脚本
? 显示脚本:
PRINT [GLOBAL] SCRIPT script_name;
? 将脚本内容发送到文件:
PRINT [GLOBAL] SCRIPT script_name TO FILE ‘file_name‘;
? 显示定义脚本的名称:
LIST [GLOBAL] SCRIPT NAMES;
? 替换脚本:
REPLACE [GLOBAL] SCRIPT script_name
{ <RMAN commands> ; }
? 删除脚本:
DELETE SCRIPT script_name;
 
? 通过文本文件更新脚本:
REPLACE [GLOBAL] SCRIPT script_nameFROM FILE 
‘file_name‘;
 
 
连接到目标数据库和恢复目录,然后使用PRINT SCRIPT命令,就可显示存储脚本或将脚本写到文件。
使用LIST SCRIPT NAMES命令可显示恢复目录中定义的脚本的名称。这个命令显示可对当前连接的目标数据库执行的所有存储脚本(包括全局和本地两种脚本)的名称。
连接到目标数据库和恢复目录,然后使用REPLACE SCRIPT命令,就可更新存储脚本。
如果脚本不存在,RMAN 会创建脚本。
要从恢复目录中删除某一存储脚本,请连接到恢复目录和某个目标数据库,然后使用DELETE SCRIPT命令。
 
  • 备份恢复目录
 
http://blog.csdn.net/rlhua/article/details/13314331
 
恢复目录是一个Oracle DB,因此与任何数据库一样,需要进行备份。Oracle 建议使用RMAN 进行备份,当然,应将控制文件而不是恢复目录用作RMAN 资料档案库。千万不要将包含数据库的RMAN 资料档案库的恢复目录存储在与目标数据库相同的数据库中,或与目标数据库相同的磁盘上。只有独立于要保护的数据时,恢复目录才有效。
配置控制文件自动备份,以便每次备份包含恢复目录时,都备份控制文件。任何时候在目标数据库中创建备份时,都可随后备份恢复目录。这样做可保护最新备份记录。
下面概要介绍了如何针对恢复目录配置备份和恢复环境:
? 在ARCHIVELOG模式下运行恢复目录。
? 将保留策略的REDUNDANCY设置为大于1 的值。
? 将恢复目录备份到磁盘和磁带。
? 要创建备份,请使用BACKUP DATABASE PLUS ARCHIVELOG命令。
? 使用控制文件(NOCATALOG) 而不是其它恢复目录作为RMAN 资料档案库。
? 将控制文件自动备份配置为ON。
 
 
  • 重新创建无法恢复的恢复目录
要重新创建丢失的恢复目录中的部分内容,请使用以下命令:
? RESYNC CATALOG命令:使用来自目标数据库控制文件或控制文件副本的任何RMAN 资料档案库信息更新恢复目录
? CATALOG START WITH命令:重新将任何可用备份列入目录
 
如果恢复目录数据库已丢失或已损坏,并且通过正常Oracle 恢复过程无法恢复恢复目录数据库时,就必须重新创建恢复目录。
可以使用以下命令重新填充恢复目录的部分内容:
? RESYNC CATALOG:通过此命令,使用来自目标数据库控制文件或控制文件副本的任何RMAN 资料档案库信息更新恢复目录请注意,来自因时间太早而从控制文件中清除的控制文件记录的元数据会丢失。
? CATALOG START WITH...:使用此命令可重新将所有可用备份列入目录。
 
 
  • 导出和导入恢复目录
使用导出和导入实用程序或数据泵实用程序可执行以下操作:
? 将恢复目录从一个数据库移至另一个数据库
? 创建RMAN 恢复目录的逻辑备份
 
可以使用导出和导入功能将恢复目录从一个数据库移至另一个数据库。
还可以创建恢复目录的导出文件作为逻辑备份。
要从一个数据库中导出恢复目录然后将其导入到另一个数据库中,请执行以下步骤:
1. 使用Oracle 导出实用程序之一从数据库中导出目录数据。
2. 在导出到的数据库上创建一个恢复目录用户,然后授予该用户必要的权限。
3. 使用对应的导入实用程序将目录数据导入到在步骤2 中创建的方案。
请勿在将目录导入到数据库之前或之后执行CREATE CATALOG命令。导入操作会在第二个数据库中创建目录。
注:通过使用导出和导入或数据泵,同时使用逻辑方法,可以备份恢复目录,并将其作为可移动表空间移动至其它数据库。
 
 
  • 升级和删除恢复目录
要将恢复目录升级到RMAN 客户机所需的版本,请使用
UPGRADE CATALOG命令:
UPGRADE CATALOG;
要删除恢复目录方案,请使用DROP CATALOG命令:
 
DROP CATALOG;
 
如果使用的恢复目录版本低于RMAN 客户机需要的版本,则必须通过执行UPGRADE CATALOG命令来升级它。
? 要安装新的恢复目录方案,恢复目录用户必须具有CREATE TYPE权限。
? 必须连接到目录数据库,而且目录数据库必须处于打开状态。不必连接到目标数据库。
? 必须再次输入UPGRADE命令来确认升级。如果恢复目录的版本已高于RMAN 执行文件所需的版本,你将收到错误消息。但是,如果恢复目录是最新版本,RMAN 将允许此命令运行,所以可根据需要重新创建程序包。
? RMAN 会在消息日志中显示升级期间生成的所有错误消息。
如果不再需要保留恢复目录,可以使用DROP CATALOG命令从表空间中删除恢复目录方案。删除目录时,会删除目录中注册的所有目标数据库的备份恢复目录记录。
? 只能在RMAN 提示符下执行此命令。
? 必须通过CATALOG命令行选项或CONNECT CATALOG命令连接到恢复目录数据库。
目录数据库必须处于打开状态。不必连接到目标数据库。
? 请输入命令两次,确认要删除方案。
 
  • IMPORT CATALOG命令
1. 连接到目标恢复目录:
CONNECT CATALOG cat111/oracle@destdb; 
2. 为所有注册的数据库导入元数据:
IMPORT CATALOG cat102/oracle@srcdb; 
3. 为两个注册的数据库导入元数据:
IMPORT CATALOG cat92/oracle@catdb DBID=1423241, 1423242;
4. 从多个目录导入元数据:
IMPORT CATALOG cat102/rman@srcdb;必须等于RMAN 可执行文件的当前版本
IMPORT CATALOG cat101/rman@srcdb;
IMPORT CATALOG cat92/rman@srcdb NOUNREGISTER;
 
使用IMPORT CATALOG命令可将元数据从一个恢复目录方案导入至其它目录方案中。如果创建了不同版本的目录方案来存储多个目标数据库的元数据,则使用此命令可以为所有数据库维护单个目录方案。
IMPORT CATALOG <connectStringSpec> 
[DBID = <dbid> [, <dbid>,…]] 
[DB_NAME=<dbname>[, <dbname,…]] 
[ NO UNREGISTER ];
<connectStringSpec>是源恢复目录连接字符串。源恢复目录方案的版本必须等于RMAN 可执行文件的当前版本。如果需要,将源目录升级到当前RMAN 本版。
DBID:你可以指定数据库ID 的列表,数据库ID 的元数据应从源目录方案导入。未指定列表时,RMAN 将所有数据库ID 的元数据从源目录方案合并到目标目录方案中。如果已在恢复目录方案中注册了合并元数据的数据库,RMAN 就会发出错误消息。
 
DB_NAME:可以指定应导入其元数据的数据库的名称列表。如果数据库名称不明确,RMAN 就会发出错误消息。
NO UNREGISTER:默认情况下,导入的数据库ID 在成功导入后从源恢复目录方案中注销。使用NO UNREGISTER选项,可以强制RMAN 将导入的数据库ID 保留在源目录方案中。
导入示例(续)
1. RMAN 必须连接到需要将目录数据导入到的目标恢复目录,例如cat111 方案。这是所有给定示例中的第一步。
注:源恢复目录方案的版本必须等于RMAN 可执行文件的当前版本。导入早期版本的目录之前,必须将早期版本升级至RMAN 可执行文件的版本。
2. 在本例中,cat102用户在srcdb数据库中拥有一个RMAN 目录。你希望RMAN 导入所有注册的数据库并在源目录中注销这些数据库。
3. cat92用户在srcdb数据库中拥有一个RMAN 目录。你希望RMAN 导入DBID为1423241和1423242的数据库,并在源目录中注销这些数据库。
4. srcdb数据库包含三个不同的恢复目录。RMAN 将所有数据库ID(已在这些目录中注册)的元数据导入到destdb数据库中的cat111方案。除在cat92方案中注册的数据库之外,所有导入的目标数据库将从其源目录中注销。
 
有关使用的其它详细资料
? 确保没有目标数据库既在源目录方案中注册,又在目标目录方案中注册。如果某个目标数据库在这两个方案中都注册了,请将此数据库从源目录中注销,然后重试导入。
? 如果导入过程中操作失败,则将回退导入。从不存在部分导入的情况。
? 源目录方案和目标目录方案中的存储脚本名称发生冲突时,RMAN 会重命名源目录方案的存储脚本。
 
  • 创建和使用虚拟专用目录
使用此功能可以合并RMAN 资料档案库并保持职责分离,这是一项基本安全要求。
RMAN 目录已被增强,可用于创建数据库组和用户组的虚拟专用RMAN 目录。该目录的所有者将创建基本目录并为虚拟目录的所有者授予RECOVERY_CATALOG_OWNER权限。目录的所有者可为虚拟目录的所有者授予访问已注册数据库的权限或REGISTER权限。然后,虚拟目录所有者可连接到特定目标的目录,或者注册一个目标数据库。完成配置后,VPC 所有者可像使用标准基本目录一样使用虚拟专用目录。
作为目录所有者,你可以访问该目录中所有已注册的数据库信息。你可以列出使用SQL*Plus 命令注册的所有数据库:
SELECT DISTINCT db_name FROM DBINC;
作为虚拟目录所有者,你只能查看授予了你访问权限的数据库。
注:如果目录所有者未被授予对目标数据库的SYSDBA或SYSOPER权限,则无法执行大多数RMAN 操作。
 
 
  • 使用RMAN 虚拟专用目录
1. 创建RMAN 基本目录:
RMAN> CONNECT CATALOG catowner/oracle@catdb 
RMAN> CREATE CATALOG;
2. 将RECOVERY_CATALOG_OWNER授予给VPC 所有者:
SQL> CONNECT SYS/oracle@catdb AS SYSDBA
SQL> GRANT RECOVERY_CATALOG_OWNER to vpcowner;
3a.将REGISTER授予给VPC 所有者:
RMAN> CONNECT CATALOGcatowner/oracle@catdb
RMAN> GRANT REGISTER DATABASE TO vpcowner;
3b.或将CATALOG FOR DATABASE授予给VPC 所有者:
RMAN>GRANT CATALOG FOR DATABASE db10g TO vpcowner;
 
可以为数据库组和用户组创建虚拟专用RMAN 目录。
1. 目录所有者将创建基本目录。
2. 目录数据库的DBA 可以创建拥有虚拟专用目录(VPC) 的用户,并授予其RECOVERY_CATALOG_OWNER权限。
3. 基本目录的所有者可为VPC 所有者授予访问先前注册的数据库的权限或授予REGISTER权限。GRANT CATALOG命令如下:
GRANT CATALOG FOR DATABASE prod1, prod2 TO vpcowner;
GRANT REGISTER命令如下:
GRANT REGISTER DATABASE TO vpcowner;
然后,虚拟目录所有者可连接到特定目标的目录,或者注册一个目标数据库。配置完VPC 之后,VPC 所有者可像使用标准基本目录一样使用该目录。
 
  • 使用RMAN 虚拟专用目录
4a.为11g客户机创建虚拟目录:
RMAN> CONNECT CATALOGvpcowner/oracle@catdb 
RMAN> CREATE VIRTUAL CATALOG;
4b.或者为11g之前的客户机创建虚拟目录:
SQL> CONNECT vpcowner/oracle@catdb
SQL> exec catowner.dbms_rcvcat.create_virtual_catalog;
5. 在目录中注册新数据库:
RMAN> CONNECT TARGET / CATALOG vpcowner/oracle@catdb
RMAN> REGISTER DATABASE;
6. 使用虚拟目录:
RMAN> CONNECT TARGET / CATALOG vpcowner/oracle@catdb;
RMAN> BACKUP DATABASE;
 
 
4. 创建虚拟专用目录。
a. 如果目标数据库是Oracle Database 11g数据库并且RMAN 客户机是11g客户机,则可使用RMAN 命令:
CREATE VIRTUAL CATALOG;
b. 如果目标数据库是Oracle Database 10g发行版2 或更早版本(使用兼容客户机),则必须从SQL*Plus 执行提供的过程:
BASE_CATALOG_OWNER.DBMS_RCVCAT.CREATE_VIRTUAL_CATALOG;
5. 使用VPC 所有者登录名连接到该目录,将其作为常规目录使用。
6. 虚拟目录所有者只能查看其有访问权限的那些数据库。对于大多数RMAN 操作,你还需要针对目标数据库的SYSDBA或SYSOPER权限。
 
 
  • 恢复目录概要
管理恢复目录:
1. 创建恢复目录。
2. 在恢复目录中注册目标数据库。
3. 如果需要,使用新的IMPORT CATALOG命令合并恢复目录。
4. 如果需要,将所有旧备份列入目录。
5. 如果需要,为特定用户创建新的虚拟恢复目录。
6. 保护恢复目录。
 
管理恢复目录的基本工作流不是新的。但是,进行了增强,其中两项重要功能发生了变化:合并RMAN 资料档案库和虚拟专用目录,这样就可以职责分离。
1. 创建恢复目录。
2. 在恢复目录中注册目标数据库。通过此步骤,RMAN 可以将目标数据库的元数据存储在恢复目录中。
3. 如果需要,也可使用IMPORT CATALOG命令合并恢复目录。
4. 如果需要,将所有旧备份列入目录,旧备份的记录不再存储在目标控制文件中。
5. 如果需要,为特定用户创建虚拟恢复目录并确定用户具有访问权限的元数据。
6. 通过将恢复目录包含在备份和恢复策略中来保护恢复目录。
 
恢复目录中包含了有关每个已注册目标数据库的RMAN 操作的元数据。恢复目录包含以下元数据类型:
? 数据文件和归档重做日志备份集以及备份片段
? 数据文件副本
? 归档重做日志及其副本
? 目标数据库中的表空间和数据文件
? 存储脚本,它们是用户创建的RMAN 命令序列
? 永久性RMAN 配置设置
在恢复目录中注册目标数据库以供RMAN 使用的过程称为注册。建议在单个恢复目录中注册所有目标数据库。例如,可以在catdb数据库的catowner方案所拥有的单个目录中注册prod1、prod2和prod3数据库。
集中恢复目录(也称为基本恢复目录)的所有者可以授予或撤销其他数据库用户对该目录的受限访问权限。所有元数据都存储在基本目录方案中。
每个受限用户都具有对其各自元数据的完整读写权限,这称为虚拟专用目录。
恢复目录从每个已注册目标数据库的控制文件中获取重要的RMAN 元数据。重新同步恢复目录确保了RMAN 从控制文件获取的元数据是当前元数据。
可以作为命令文件的替代方式使用存储脚本来管理经常使用的RMAN 命令序列。脚本存储在恢复目录中,而不是文件系统中。本地存储脚本与创建脚本时RMAN 连接到的目标数据库相关联,只有连接到该目标数据库时才能执行本地存储脚本。全局存储脚本可针对在恢复目录中注册的任何数据库运行。
可在使用或已使用不同数据库版本的环境中使用恢复目录。因此,你的环境可具有不同版本的RMAN 客户机、恢复目录数据库、恢复目录方案和目标数据库。为便于管理,可将一个恢复目录(或此目录中特定数据库的元数据)合并到另一个恢复目录中。

 

来源:http://blog.csdn.net/rlhua/article/details/13169205