RMAN Verbeteringen in Oracle Database 11g - Recovery Catalog Verbeteringen Virtual Private Catalog Import Catalog Virtual Private CatalogOracle 11g komt met het concept van de virtual private catalog, wat een subset is van de basis recovery catalog. De eigenaar van de basis recovery catalog kan nu GRANT of REVOKE toegang op individule databases aan andere users in dezelfde database. Om een virtual private catalog te kunnen maken, moet je inloggen met SQLP*PLUS en aanloggen als sys, vervolgens een database user aanmaken en de RECOVERY_CATALOG_OWNER role aan deze user GRANTEN. CREATE USER vpc1 IDENTIFIED BY vpc1 QUOTA UNLIMITED ON users; GRANT RECOVERY_CATALOG_OWNER TO vpc1;
Vervolgens log je aan in RMAN met gebruik van de basis recovery catalog owner en toegang op de relevante database granten aan de virtual private catalog user. De database kan gespecificeerd worden met de database naam of het DBID.
$ rman RMAN> CONNECT CATALOG rman/rman; RMAN> GRANT CATALOG FOR DATABASE db11g TO vpc1;Grant succeeded. RMAN>
De volgende grant zal de virtual private catalog toestaan om nieuwe target databases te registreren.
RMAN> GRANT REGISTER DATABASE TO vpc1;Grant succeeded. RMAN>
Vervolgens loggen we aan in RMAN met gebruik van de virtual private catalog owner en voeren het CREATE VIRTUAL CATALOG commando uit.
$ rman RMAN> CONNECT CATALOG vpc1/vpc1; RMAN> CREATE VIRTUAL CATALOG;found eligible base catalog owned by RMAN created virtual catalog against base catalog owned by RMAN RMAN>
Als de catalog wordt gebruikt voor releases voor 11g, log aan met SQL*Plus las de virtual private catalog owner en run de volgende procedure, waar "rman" de naam van de eigenaar van de basis catalog voorstelt.
SQL> CONN vpc1/vpc1 Connected. SQL> EXEC rman.DBMS_RCVCAT.CREATE_VIRTUAL_CATALOG;PL/SQL procedure successfully completed. SQL>
Om privileges in te nemen van een virtual private catalog, log aan binnen RMAN als de catalog owner en neem de rechetn tot toegang naar de betreffende database in door:
# Voorkom dat er nieuwe targets geregistreerd worden indien nodig. REVOKE REGISTER DATABASE FROM vpc1;
De manier om de virtual private database te droppen hangt af van de database versie van de target die die ermee zijn geregistreerd. Als er alleen 11g versies zijn geregistreerd log dan aan in RMAN als de virtual private catalog owner en vier het volgende uit: $ rman RMAN> CONNECT CATALOG vpc1/vpc1; RMAN> DROP CATALOG;
Als er versies voor 11g geregistreerd zijn, connect dan met SQL*PLUS als de private catalog owner en run de volgende procedure. RMAN staat voor de naam van de basis catalog owner.
SQL> CONN vpc1/vpc1 Connected. SQL> EXEC rman.DBMS_RCVCAT.DROP_VIRTUAL_CATALOG; PL/SQL procedure successfully completed.
SQL> Het is nu veilig om de virtual private catalog user te droppen.
SQL> CONN / AS SYSDBA Connected. SQL> DROP USER vpc1 CASCADE;User dropped. SQL>
Import CatalogOracle 11g heeft ook het IMPORT CATALOG commando geïntroduceerd wat het mogelijk maakt om recovery catalogs samen te voegen of te moven. Connect naar de bestemmings catalog en voer het IMPORT CATALOG commando uit, waarbij je de eigenaar van de bron catalog eigenaar aangeeft: $ rman RMAN> CONNECT CATALOG rman2/rman2 RMAN> IMPORT CATALOG rman@db11g;Starting import catalog at 07-JAN-08 source recovery catalog database Password: connected to source recovery catalog database import validation complete database unregistered from the source recovery catalog Finished import catalog at 07-JAN-08 RMAN>
Iedere target die geïmporteerd is wordt ge-deregistreerd uit de bron catalog. De import kan gelimiteerd worden tot een subset van catalog door het DBID of de DB_NAME van iedere target die je wilt importeren te specificeren.
RMAN> IMPORT CATALOG rman@db11g DBID=1423241, 1423242; RMAN> IMPORT CATALOG rman@db11g DB_NAME=prod3, prod4; De versie van de bron catalog moet overeenkomen met de executable van RMAN om succesvol te zijn.
Om een hele catalog naar een nieuwe server te verplaatsen, kan je simpelweg een nieuwe user aanmaken op de nieuwe server die als catalog owner zal fungeren, creëer een catalog en importeer de inhoud van de bestaande catalog daarin. $ sqlplus / as sysdba SQL> CREATE USER rman2 IDENTIFIED BY rman2 QUOTA UNLIMITED ON rman_ts; SQL> GRANT RECOVERY_CATALOG_OWNER TO rman2; SQL> EXIT;
$ rman catalog=rman2/rman2 RMAN> CREATE CATALOG; RMAN> IMPORT CATALOG rman@db11g;
zie ook RMAN verbeteringen in Oracle 11g
|