When I use a recovery catalog, I prefer to have a dedicated database that is used only for the recovery catalog. This ensures that the recovery catalog is not affected by any maintenance or downtime required by another application (and vice versa).
Listed next are the steps for creating a recovery catalog:
1. Create a database on a server different from that of your target database, to be used for the recovery catalog. Make sure the database is adequately sized. I have found that Oracle’s recommended sizes are usually much too small. Here are some adequate recommendations for initial sizing:
SYSTEM tablespace: 500MB SYSAUX tablespace: 500MB
TEMP tablespace: 500MB UNDO tablespace: 500MB
Online redo logs: 25MB each; three groups, multiplexed with two members per group RECCAT tablespace: 500MB
2. Create a tablespace to be used by the recovery catalog user. I recommend giving the tablespace a name such as RECCAT so that it is readily identifiable as the tablespace that contains the recovery catalog metadata:
SQL> CREATE TABLESPACE reccat
DATAFILE ‘/u01/dbfile/O12C/reccat01.dbf’ SIZE 500M EXTENT MANAGEMENT LOCAL UNIFORM SIZE 128k
SEGMENT SPACE MANAGEMENT AUTO;
3. Create a user that will own the tables and other objects used to store the target database metadata. I recommend giving the recovery catalog user a name such as RCAT so that it is readily identifiable as the user that owns the recovery catalog objects.
Also, grant the RECOVERY_CATALOG_OWNER role to the RCAT user as well as CREATE SESSION:
SQL> CREATE USER rcat IDENTIFIED BY Pa33word1 TEMPORARY TABLESPACE temp
DEFAULT TABLESPACE reccat QUOTA UNLIMITED ON reccat; —
GRANT RECOVERY_CATALOG_OWNER TO rcat; GRANT CREATE SESSION TO rcat;
4. Connect through RMAN as RCAT, and create the recovery catalog objects:
$ rman catalog rcat/Pa33word1
5. Now, run the CREATE CATALOG command:
RMAN> create catalog RMAN> exit;
6. This command may take a few minutes to run. When it is finished, you can verify that the tables were created with the following query:
$ sqlplus rcat/Pa33word1
SQL> select table_name from user_tables;
7. Here is a small sample of the output:
TABLE_NAMEDBNODE CONF DBINC