虚拟私有目录 缺省情况下,RMAN恢复目录的所有用户都有完全的权限来向恢复目录插入,更新与删除元数据。例如,如果管理员管理的两个不相关的数据库共享同一个恢复目录,每个管理员都可以有意或无意的损坏另一个数据库的元数据。在许多企业,这种情况是被允许的因为相同的人管理许多不同的数据库与恢复目录。你可能期望限制每个数据库管理员只能修改属于他管理的数据库元数据。可以通过创建虚拟私有目录来完成这个目标。每个Oracle 11G恢复目录都支持虚拟恢复目录,但它们需要显式地被创建。虚拟私有目录的个数没有限制,每个虚拟私有目录是属于数据库方案用户不同于恢复目录的所有者。在创建一个或多个虚拟私有目录后,接下来就是管理员对恢复目录授予每个虚拟私有目录权限来向恢复目录注册当前使用的一个或多个数据库。恢复目录管理也能被授予权限来使用虚拟私有目录来注册新的数据库。一.创建基本恢复目录: 1.启动SQL*Plus并使用管理权限连接到包含恢复目录的数据库 [oracle11@jingyong1 ~]$ sqlplus / as sysdbaSQL*Plus: Release 11.2.0.4.0 Production on Sun May 10 17:24:02 2015Copyright (c) 1982, 2013, Oracle. All rights reserved. Connected to: Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - Production With the Partitioning, OLAP, Data Mining and Real Application Testing options 2.为恢复目录创建一个用户与方案 SQL> create user rman identified by "rman" default tablespace users quota unlimited on users temporary tablespace temp;User created. 3.给恢复目录用户授予recovery_catalog_owner角色。有这个角色的用户有恢复与查询恢复目录所需要的所有权限 SQL> grant recovery_catalog_owner to rman;Grant succeeded. 4.启动RMAN并连接到包含恢复目录的数据库,使用恢复目录用户连接数据库 [oracle11@jingyong1 ~]$ rman catalog rman/rman@csRecovery Manager: Release 11.2.0.4.0 - Production on Fri May 8 14:28:09 2015Copyright (c) 1982, 2011, Oracle and/or its affiliates. All rights reserved.connected to recovery catalog databaseRMAN> 5.执行create catalog命令来创建目录。创建操作可能会执行几分钟。如果恢复目录表空间是用户的缺省表空间,那么可以执行以下命令 RMAN> create catalog;recovery catalog created 可以在执行create catalog命令时指定表空间名:RMAN> CREATE CATALOG TABLESPACE cat_tbs;如果恢复目录要使用的表空间名是RMAN的保留关键字,那么必须书写为大写并以引号括起来,比如:CREATE CATALOG TABLESPACE "CATALOG"。6.使用SQL*Plus来查询恢复目录查看相关基本是否创建 SQL> conn rman/rman Connected.SQL> SELECT TABLE_NAME FROM USER_TABLES;TABLE_NAME ------------------------------ DB NODE CONF DBINC CKP TS TSATT DF SITE_DFATT TF SITE_TFATT OFFR RR RT ORL RLH AL BS BP BCF CCF XCF BSF BDF CDF XDF BRL BCB CCB SCR SCRL CONFIG XAL RSR FB GRSP NRSP VPC_USERS VPC_DATABASES CFS BCR ROUT RCVER TEMPRES44 rows selected.SQL> select count(*) from user_objects; COUNT(*) ---------- 252 二.创建虚拟私有目录 1.启动SQL*Plus并使用管理权限连接到恢复目录数据库 [oracle11@jingyong1 ~]$ sqlplus / as sysdbaSQL*Plus: Release 11.2.0.4.0 Production on Sun May 10 17:24:02 2015Copyright (c) 1982, 2013, Oracle. All rights reserved. Connected to: Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - Production With the Partitioning, OLAP, Data Mining and Real Application Testing options 2.如果虚拟私有目录的所者用户不存在,那么创建这个用户。例如,如果想要创建数据库用户vpc1来管理虚拟私有目录,那么可以执行下面的命令 SQL> create user vpc1 identified by "vpc1" default tablespace users quota unlimited on users temporary tablespace temp;User created. 3.对管理虚拟私有目录的用户授予recovery_catalog_owner角色 SQL> grant recovery_catalog_owner to vpc1;Grant succeeded.SQL> exit 4.启动RMAN并以基本恢复目录用户连接到恢复目录数据库 [oracle11@oracle11g ~]$ rmanRecovery Manager: Release 11.2.0.4.0 - Production on Sun May 10 16:09:22 2015Copyright (c) 1982, 2011, Oracle and/or its affiliates. All rights reserved.RMAN> connect catalog rman/rman@csconnected to recovery catalog databaseRMAN> 5.给虚拟私有目录用户授予需要的权限,指定用户vpc1可以访问数据库db的元数据 RMAN> grant catalog for database db to vpc1;Grant succeeded. 在授予权限时可以使用DBID不一定要使用数据库名。虚拟私有目录用户不能访问恢复目录中任何其它数据库的元数据。6.可以授予用户向恢复目录注册新目标数据库的能力 RMAN> grant register database to vpc1;Grant succeeded. 7.启动RMAN并使用虚拟私有目录用户(不是基本恢复目录用户)连接到恢复目录数据库 Recovery Manager complete. [oracle11@oracle11g ~]$ rmanRecovery Manager: Release 11.2.0.4.0 - Production on Sun May 10 16:19:26 2015Copyright (c) 1982, 2011, Oracle and/or its affiliates. All rights reserved.RMAN> connect catalog vpc1/vpc1@csconnected to recovery catalog databaseRMAN> 8.创建虚拟私有目录 [oracle11@jingyong1 cs]$ rman catalog vpc1/vpc1@csRecovery Manager: Release 11.2.0.4.0 - Production on Sun May 10 17:25:40 2015Copyright (c) 1982, 2011, Oracle and/or its affiliates. All rights reserved.connected to recovery catalog databaseRMAN> create virtual catalog;found ineligible base catalog owned by RMAN found eligible base catalog owned by VPC1 created virtual catalog against base catalog owned by VPC19.如果是使用 10.2或之前的版本RMAN且要使用虚拟私有目录,那么可以执行下面的PL/SQL过程来创建虚拟私有目录(这里的base_catalog_owner是基本恢复目录用户) SQL> EXECUTE base_catalog_owner.DBMS_RCVCAT.CREATE_VIRTUAL_CATALOG;10.注册目标数据库 [oracle11@jingyong1 cs]$ rman target sys/system@db catalog vpc1/vpc1@csRecovery Manager: Release 11.2.0.4.0 - Production on Sun May 10 17:46:51 2015Copyright (c) 1982, 2011, Oracle and/or its affiliates. All rights reserved.connected to target database: DB (DBID=1640573015) connected to recovery catalog databaseRMAN> register database;database registered in recovery catalog starting full resync of recovery catalog full resync complete--------------------------------------推荐阅读 --------------------------------------RMAN 配置归档日志删除策略 http://www.linuxidc.com/Linux/2013-11/92670.htmOracle基础教程之通过RMAN复制数据库 http://www.linuxidc.com/Linux/2013-07/87072.htmRMAN备份策略制定参考内容 http://www.linuxidc.com/Linux/2013-03/81695.htmRMAN备份学习笔记 http://www.linuxidc.com/Linux/2013-03/81892.htmOracle数据库备份加密 RMAN加密 http://www.linuxidc.com/Linux/2013-03/80729.htm--------------------------------------分割线 --------------------------------------更多Oracle相关信息见Oracle 专题页面 http://www.linuxidc.com/topicnews.aspx?tid=12本文永久更新链接地址