Oracle 11g RMAN虛擬私有目錄

eric0435發表於2015-05-10

虛擬私有目錄
預設情況下,RMAN恢復目錄的所有使用者都有完全的許可權來向恢復目錄插入,更新與刪除後設資料。例如,如果管理員管理的兩個不相關的資料庫共享同一個恢復目錄,每個管理員都可以有意或無意的損壞另一個資料庫的後設資料。在許多企業,這種情況是被允許的因為相同的人管理許多不同的資料庫與恢復目錄。你可能期望限制每個資料庫管理員只能修改屬於他管理的資料庫後設資料。可以透過建立虛擬私有目錄來完成這個目標。

每個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

9.如果是使用 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@cs

Recovery Manager: Release 11.2.0.4.0 - Production on Sun May 10 17:46:51 2015

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

connected to target database: DB (DBID=1640573015)
connected to recovery catalog database

RMAN> register database;

database registered in recovery catalog
starting full resync of recovery catalog
full resync complete

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/26015009/viewspace-1633545/,如需轉載,請註明出處,否則將追究法律責任。

相關文章