This is an excerpt from the bestselling book
Oracle Grid & Real Application Clusters. To get immediate
access to the code depot of working RAC scripts, buy it
directly from the publisher and save more than 30%.
RMAN can be used either with or
without a recovery catalog. A recovery catalog is a schema stored in
a database that tracks backups and stores scripts for use in RMAN
backup and recovery situations. Generally, an experienced DBA would
suggest that the Enterprise Manager instance schema and RMAN catalog
schema be placed in the same utility database on a server separate
from the main servers. The RMAN schema generally only requires 15
megabyte per year per database backed up.
The RMAN schema owner is created
in the RMAN database using the following steps:
- 1. Start SQL*Plus and connect as a user with administrator privileges to the database containing the recovery catalog. For example, enter:
CONNECT
SYS/oracle@catdb AS SYSDBA
- 2. Create a user and schema for the recovery catalog. For example, enter:
CREATE USER
rman IDENTIFIED BY cat
TEMPORARY TABLESPACE temp
DEFAULT TABLESPACE tools
QUOTA UNLIMITED ON tools;
TEMPORARY TABLESPACE temp
DEFAULT TABLESPACE tools
QUOTA UNLIMITED ON tools;
- 3. Grant the recovery_catalog_owner role to the user. This role provides all of the privileges required to maintain and query the recovery catalog:
SQL> GRANT
RECOVERY_CATALOG_OWNER TO rman;
Once the owner user is created,
the RMAN recovery catalog schema can be added:
- 1. Connect to the database that contains the catalog owner. For example, using the RMAN user from the above example, enter the following from the operating system command line. The use of the CATALOG keyword tells Oracle this database contains the repository:
% rman
CATALOG rman/cat@catdb
- 2. It is also possible to connect from the RMAN utility prompt:
% rman
RMAN> CONNECT
CATALOG rman/cat@catdb
- 3. Now, the CREATE CATALOG command can be run to create the catalog. The creation of the catalog may take several minutes. If the catalog tablespace is this user's default tablespace, the command would look like the following:
CREATE
CATALOG;
While the RMAN catalog can be
created and used from either a 9i or 10g database, the Enterprise
Manager Grid Control database must be a 9i database. This is
true at least for release 1, although this may change with future
releases.
Each database that the catalog
will track must be registered.
- Registering a Database with RMAN
The following process can be
used to register a database with RMAN:
- 1. Make sure the recovery catalog database is open.
- 2. Connect RMAN to both the target database and recovery catalog database. For example, with a catalog database of RMANDB and user RMAN, owner of the catalog schema, and the target database, AULT1, which is the database to be backed up, database user SYS would issue:
% rman TARGET
sys/oracle@ault1 CATALOG rman/cat@rmandb
- 3. Once connected, if the target database is not mounted, it should be opened or mounted:
RMAN>
STARTUP;
--or--
RMAN> STARTUP
MOUNT;
- 4. If this target database has not been registered, it should be registered it in the connected recovery catalog:
RMAN>
REGISTER DATABASE;
The database can now be operated
on using the RMAN utility.
- Example RMAN Operations
The following is an example of
the command line connection to a RAC environment, assuming the RAC
instances are AULT1 and AULT2:
$ rman TARGET
SYS/kr87m@ault2 CATALOG rman/cat@rmandb
The connection string, in this
case AULT2, can only apply to a single instance, so the entry in the
tnsnames.ora for the AULT2 connection would be:
ault2 =
(DESCRIPTION =
(ADDRESS_LIST =
(LOAD_BALANCE = OFF)
(FAILOVER = ON)
(ADDRESS = (PROTOCOL = TCP)(HOST = aultlinux2)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = ault)
(INSTANCE_NAME = ault2)
)
(DESCRIPTION =
(ADDRESS_LIST =
(LOAD_BALANCE = OFF)
(FAILOVER = ON)
(ADDRESS = (PROTOCOL = TCP)(HOST = aultlinux2)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = ault)
(INSTANCE_NAME = ault2)
)
- If the instances use archive logs, RAC requires that a channel connection be specified for each instance that will resolve to only one instance. For example, using the AULT1 and AULT2 instances from the previous example:
CONFIGURE
DEFAULT DEVICE TYPE TO sbt;
CONFIGURE DEVICE TYPE TO sbt PARALLELISM 2;
CONFIGURE CHANNEL 1 DEVICE TYPE sbt CONNECT = 'SYS/kr87m@ault1';
CONFIGURE CHANNEL 2 DEVICE TYPE sbt CONNECT = 'SYS/kr87m@ault2';
CONFIGURE DEVICE TYPE TO sbt PARALLELISM 2;
CONFIGURE CHANNEL 1 DEVICE TYPE sbt CONNECT = 'SYS/kr87m@ault1';
CONFIGURE CHANNEL 2 DEVICE TYPE sbt CONNECT = 'SYS/kr87m@ault2';
- This configuration only has to be specified once for a RAC environment. It should be changed only if nodes are added or removed from the RAC configuration. For this reason, it is known as a persistent configuration, and it need never be changed for the life of the RAC system. This configuration requires that each of the specified nodes be open, the database is operational, or closed, the database shutdown. If one specified instance is not in the same state as the others, the backup will fail.
RMAN is also aware of the node
affinity of the various database files. The node with the greatest
access will be used to backup those datafiles that the instance has
greatest affinity for. Node affinity can, however, be overridden
with manual commands, as follows:
BACKUP
#Channel 1 gets datafiles 1,2,3
(DATAFILE 1,2,3 CHANNEL ORA_SBT_TAPE_1)
#Channel 2 gets datafiles 4,5,6,7
(DATAFILE 4,5,6,7 CHANNEL ORA_SBT_TAPE2)
#Channel 1 gets datafiles 1,2,3
(DATAFILE 1,2,3 CHANNEL ORA_SBT_TAPE_1)
#Channel 2 gets datafiles 4,5,6,7
(DATAFILE 4,5,6,7 CHANNEL ORA_SBT_TAPE2)
The nodes chosen to backup an
Oracle RAC cluster must have the ability to see all of the files
that require backup. For example:
BACKUP
DATABASE PLUS ARCHIVELOG;
The specified nodes must have
access to all archive logs generated by all instances. This could
entail some special considerations when configuring the Oracle RAC
environment.
The essential steps for using
RMAN in Oracle RAC are:
* Configure the snapshot control
file location.
* Configure the control file
autobackup feature.
* Configure the archiving
scheme.
* Change the archivemode of the
database, although this is optional.
* Monitor the archiver process.
The following section will show
how the snapshot control file location is configured.