每个Oracle 11G恢复目录都支持虚拟恢复目录,但它们需要显式地被创建。虚拟私有目录的个数没有限制,每个虚拟私有目录是属于数据
虚拟私有目录
缺省情况下,RMAN恢复目录的所有用户都有完全的权限来向恢复目录插入,更新与删除元数据。例如,如果管理员管理的两个不相关的数据库共享同一个恢复目录,每个管理员都可以有意或无意的损坏另一个数据库的元数据。在许多企业,这种情况是被允许的因为相同的人管理许多不同的数据库与恢复目录。你可能期望限制每个数据库管理员只能修改属于他管理的数据库元数据。可以通过创建虚拟私有目录来完成这个目标。
每个Oracle 11G恢复目录都支持虚拟恢复目录,但它们需要显式地被创建。虚拟私有目录的个数没有限制,每个虚拟私有目录是属于数据库方案用户不同于恢复目录的所有者。
在创建一个或多个虚拟私有目录后,接下来就是管理员对恢复目录授予每个虚拟私有目录权限来向恢复目录注册当前使用的一个或多个数据库。恢复目录管理也能被授予权限来使用虚拟私有目录来注册新的数据库。
一.创建基本恢复目录:
1.启动SQL*Plus并使用管理权限连接到包含恢复目录的数据库
[oracle11@jingyong1 ~]$ sqlplus / as sysdba
SQL*Plus: Release 11.2.0.4.0 Production on Sun May 10 17:24:02 2015
Copyright (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@cs
Recovery Manager: Release 11.2.0.4.0 - Production on Fri May 8 14:28:09 2015
Copyright (c) 1982, 2011, Oracle and/or its affiliates. All rights reserved.
connected to recovery catalog database
RMAN>
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
TEMPRES
44 rows selected.
SQL> select count(*) from user_objects;
COUNT(*)
----------
252
二.创建虚拟私有目录
1.启动SQL*Plus并使用管理权限连接到恢复目录数据库
[oracle11@jingyong1 ~]$ sqlplus / as sysdba
SQL*Plus: Release 11.2.0.4.0 Production on Sun May 10 17:24:02 2015
Copyright (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 ~]$ rman
Recovery Manager: Release 11.2.0.4.0 - Production on Sun May 10 16:09:22 2015
Copyright (c) 1982, 2011, Oracle and/or its affiliates. All rights reserved.
RMAN> connect catalog rman/rman@cs
connected to recovery catalog database
RMAN>
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 ~]$ rman
Recovery Manager: Release 11.2.0.4.0 - Production on Sun May 10 16:19:26 2015
Copyright (c) 1982, 2011, Oracle and/or its affiliates. All rights reserved.
RMAN> connect catalog vpc1/vpc1@cs
connected to recovery catalog database
RMAN>
8.创建虚拟私有目录
[oracle11@jingyong1 cs]$ rman catalog vpc1/vpc1@cs
Recovery Manager: Release 11.2.0.4.0 - Production on Sun May 10 17:25:40 2015
Copyright (c) 1982, 2011, Oracle and/or its affiliates. All rights reserved.
connected to recovery catalog database
RMAN> 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 VPC1