The purpose of this article is to explain how to set up different catalogs
in the same database and manage all Oracle release database backups with RMAN.
You use the RMAN utility to backup databases running under different Oracle
releases, and you cannot afford to create a catalog database for each different
release of the target databases.
The Oracle releases effected are 8.0.3, 8.0.4, 8.0.5, 8.0.6, 8.1.5, 8.1.6,
and 8.1.7.
There are two major releases of RMAN available: 8.0 and 8.1.
Instead of creating three catalog databases, you create two catalog
schemas in the same database. Hence, disk space is saved from having
double tablespace sets.
*** **************
*** Method
*** **************
1. Install the last Oracle release (i.e., 9.2.0).
The recommended environment is to have the backup server be different
from the target databases for security reasons.
2. Create an 9.2.0 database.
Tablespace SYSTEM 50 Mb
Tablespace TEMP 5 Mb
Tablespace ROLLBACK 5 Mb
Online Redologs 1 Mb each (3 multiplexed groups)
3. Verify the environment variables such as ORACLE_HOME, PATH, ORACLE_PATH,
and ORACLE_SID.
4. Create the 8.0.5 catalog in the 9.2.0 catalog database.
# sql syntax for creating logical catalog 8.0.5 structure.
create tablespace RCAT80 datafile '/export/home/dfreneuil/D817F/
DATAFILES/rcat80_01.dbf' size 20M ;
# sql syntax for creating catalog 8.0.5 user owner.
create user RMAN80 identified by rman80
default tablespace RCAT80
temporary tablespace temp
quota unlimited on RCAT80 ;
# sql syntax for granting role to catalog 8.0.5 user owner.
grant connect, resource,recovery_catalog_owner to rman80 ;
5. Create the 9.2.0 catalog in the 9.2.0 catalog database.
# sql syntax for creating logical catalog 8i structure.
create tablespace RCAT9I datafile '/export/home/dfreneuil/D920F/
DATAFILES/rcat9i_01.dbf' size 20M ;
# sql syntax for creating catalog 9i user owner.
create user RMAN8I identified by rman9i
default tablespace RCAT9I
temporary tablespace temp
quota unlimited on RCAT9I ;
# sql syntax for granting role to catalog 9i user owner.
grant connect, resource,recovery_catalog_owner to rman8i ;
6. Set up the tnsnames.ora file.
RMAN connects to the target and the appropriate catalog through NET8.
The file tnsnames.ora must be configured with aliases for each target
and its appropriate catalog.
Example:
--------
######
###connection alias for RMAN catalog (it is an 8.0.5)
V805cat.world =
(DESCRIPTION=
(ADDRESS_LIST=
(ADDRESS =(PROTOCOL=TCP)(HOST=140.86.203.4)(PORT=1521)))
(CONNECT_DATA=
(SID=V805)))
######
###connection alias RMAN?s target database (it is an 8.0.5)
V805daniel.world =
(DESCRIPTION=
(ADDRESS_LIST=
(ADDRESS =(PROTOCOL=TCP)(HOST=140.86.219.9)(PORT=1521)))
(CONNECT_DATA=
(SID=ORC1)))
######
######
7. Edit the init.ora parameter file to update the REMOTE_LOGIN_PASSWORDFILE
value.
remote_login_passwordfile = exclusive
This parameter must be set to this value for RMAN to be able to connect.
8. Create the catalog views.
o 9.2.0 catalog views creation.
$ rman catalog rman9i/rman9i or $ rman catalog rman8i/rman9i@alias
--> to connect locally. --> to connect through NET8.
RMAN> create catalog ;
o 8.0.5 catalog views creation.
Since the catalogs database is an 8.1.7 database, connect to the 8.0.5
catalog via 8.0.5 SQL*Plus.
$ sqlplus rman80/rman80@alias_to_rcat80
--> connect from the target machine to the 8.0.5 catalog.
SQL> @?/rdbms/admin/catrman.sql
*** *********************************************************************
*** Backup an 8.0.5 database with 8.0.5 RMAN into an 8.0.5 catalog in an
*** 9.2.0 catalog database.
*** *********************************************************************
$ rman rcvcat rman80/rman80@V817
Recovery Manager: Release 8.0.5.0.0 - Production
RMAN-06008: connected to recovery catalog database
RMAN> connect target
RMAN-06005: connected to target database: V806
RMAN> run {
2> allocate channel t1 type DISK;
3> backup full filesperset 10
4> (database include current controlfile
5> format 'df_t%t_s%s_p%p');
6> release channel t1;
7> }
RMAN-03022: compiling command: allocate
RMAN-03023: executing command: allocate
RMAN-08030: allocated channel: t1
RMAN-08500: channel t1: sid=9 devtype=DISK
RMAN-03022: compiling command: backup
RMAN-03023: executing command: backup
RMAN-08008: channel t1: starting datafile backupset
RMAN-08502: set_count=3 set_stamp=415558553
RMAN-08010: channel t1: including datafile 1 in backupset
RMAN-08011: channel t1: including current controlfile in backupset
RMAN-08010: channel t1: including datafile 4 in backupset
RMAN-08010: channel t1: including datafile 5 in backupset
RMAN-08010: channel t1: including datafile 2 in backupset
RMAN-08010: channel t1: including datafile 3 in backupset
RMAN-08013: channel t1: piece 1 created
RMAN-08503: piece handle=/db/ora806/dbs/df_t415558553_s3_p1 comment=NONE
RMAN-03023: executing command: partial resync
RMAN-08003: starting partial resync of recovery catalog
RMAN-08005: partial resync complete
RMAN-03022: compiling command: release
RMAN-03023: executing command: release
RMAN-08031: released channel: t1
RMAN>
Note:
-----
If you connect with the RMAN 9.2.0 utility to the 8.0.5 catalog, you get
the following error:
$ ORACLE_HOME=/8i/ora817
$ rman catalog rman80/rman80@V920
Recovery Manager: Release 8.2.0.0.0 - Production
RMAN-06008: connected to recovery catalog database
RMAN-06186 : pl/sql package RMAN80.DBMS_RCVCAT version 08.00.05
in RCVCAT database is too old