Oracle RMAN Recovery Catalog Creation Procedure

English

The Oracle RMAN Recovery Catalog is a critical feature for the centralized management of backup information. This article provides a detailed explanation of the steps from creating a catalog user to registering the database and executing backups.

Conclusion: Quick Steps for Recovery Catalog Creation

Building a recovery catalog is completed in the following 4 steps:

  1. Prepare the Catalog DB: Create a dedicated tablespace and user, and grant necessary privileges.
  2. Connection Settings: Add the connection definition for the catalog DB to tnsnames.ora.
  3. Create Catalog: Connect to the catalog DB from RMAN and execute CREATE CATALOG.
  4. Register DB: Perform REGISTER DATABASE for the target DB in the catalog.

Background and Basic Knowledge of Recovery Catalog

A recovery catalog is a schema used to redundantly manage RMAN metadata—normally stored in the target database’s control file—within an external Oracle database.

  • Benefits: Maintaining old backup information beyond the control file retention period, centralized management of backup information for multiple databases, and the ability to store RMAN scripts.
  • Notes: Backups of the catalog DB itself will also be required.

How to Create a Recovery Catalog / Implementation Steps

The following steps assume that the database storing the catalog (Catalog DB) and the database to be backed up (Target DB) are already configured.

1. Creating the Catalog Tablespace and User

Log in to the Catalog DB with administrative privileges (such as SYSDBA) to create a dedicated storage area and the owner user.

Prerequisites:

  • Target OS: Oracle Linux / Windows (Common)
  • OS User: oracle (DB operation user)
  • Privileges: SYSDBA connection privileges to the Catalog DB

First, connect to the Catalog DB via SQL*Plus and execute the following SQL:

-- Create tablespace for recovery catalog
CREATE TABLESPACE rctbs DATAFILE '/u01/app/oracle/oradata/V19/rctbs01.dbf' SIZE 500M;

-- Create recovery catalog owner user
-- It is advisable to avoid special characters like "@" in the password
CREATE USER rcuser IDENTIFIED BY oracle_password123
DEFAULT TABLESPACE rctbs
QUOTA UNLIMITED ON rctbs;

-- Grant required roles to the catalog owner
GRANT RECOVERY_CATALOG_OWNER TO rcuser;

Note: The RECOVERY_CATALOG_OWNER role includes the privileges required to create the metadata tables necessary for the catalog.

SQL> create tablespace rctbs datafile '/u01/app/oracle/oradata/V19/rctbs01.dbf' size 500m;

表領域が作成されました。

SQL> create user rcuser identified by oracle
2 default tablespace rctbs
3 quota unlimited on rctbs;

ユーザーが作成されました。

SQL> grant recovery_catalog_owner to rcuser;

権限付与が成功しました。

2. tnsnames.ora Configuration

Add an entry to the network configuration file tnsnames.ora so that the Catalog DB can be accessed from the Target DB server.

RCATALOG =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = v19single)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = v19)
    )
  )

3. Creating the Catalog via RMAN

Start RMAN and create the physical catalog (the set of metadata tables) within the Catalog DB.

# Connect to the Catalog DB (Connection to the Target DB is optional)
rman catalog rcuser/oracle_password123@rcatalog

Execute the following at the RMAN prompt:

-- Create objects within the catalog schema
CREATE CATALOG;

4. Registering the Target Database

Link the database you wish to manage (Target DB) to the recovery catalog.

# Connect to both the Target DB and the Catalog DB
rman TARGET / CATALOG rcuser/oracle_password123@rcatalog

Execute the following at the RMAN prompt:

-- Write Target DB information into the catalog
REGISTER DATABASE;

-- Confirm registration status (Display incarnation information)
LIST INCARNATION;

Intent of Execution: If the Target DB name and DBID are displayed by LIST INCARNATION, the registration to the catalog is successful.

[oracle@restart ~]$ rman target / catalog rcuser/oracle@rcatalog

Recovery Manager: Release 19.0.0.0.0 - Production on 月 2月 10 18:42:03 2025
Version 19.3.0.0.0

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

ターゲット・データベース: V19 (DBID=2960846808)に接続されました
リカバリ・カタログ・データベースに接続されました。

RMAN> create catalog;

リカバリ・カタログが作成されました。

RMAN> register database;

データベースがリカバリ・カタログに登録されました。
リカバリ・カタログの完全再同期を開始しています
完全再同期が完了しました

RMAN> list incarnation;


データベース・インカネーション・リスト
DB Key Inc Key DB Name DB ID STATUS Reset SCN Reset Time
------- ------- -------- ---------------- --- ---------- ----------
1 16 V19 2960846808 PARENT 1 19-04-17
1 2 V19 2960846808 CURRENT 1920977 24-01-05

Execution Example: Taking and Verifying a Backup

Once registration is complete, perform an actual backup to verify that the information is recorded in the catalog.

-- Execute a full backup including archivelogs
BACKUP DATABASE PLUS ARCHIVELOG;

-- Display backup information recorded in the catalog
LIST BACKUP;

Explanation: When connected to a catalog, the LIST BACKUP command refers to the metadata within the catalog rather than the control file to display results.


Troubleshooting

Error CodePrimary CauseAction
ORA-01017Username/password mismatchReconfirm rcuser password or check SQLNet authentication
ORA-12154Cannot resolve TNS connection identifierCheck for typos in tnsnames.ora or verify file location
RMAN-06004Catalog DB is not startedCheck the instance status of the Catalog DB and ensure it is OPEN
RMAN-06428Catalog is not installedExecute the CREATE CATALOG command first

Operational and Security Notes

  • Catalog DB Backup: If the recovery catalog is lost, old backup information cannot be referenced. Ensure you take backups of the Catalog DB itself (e.g., using exports).
  • Password Management: Manage the rcuser password strictly. If writing it in plaintext within scripts, set appropriate file permissions.
  • Catalog Upgrade: If you upgrade the version of the Target DB, the UPGRADE CATALOG command may be required.

FAQ: Frequently Asked Questions about Recovery Catalog

Q: Is it mandatory to create a recovery catalog?

A: No, it is not mandatory. For small-scale environments, management using only the control file (NO CATALOG mode) is sufficient.

Q: Can the Catalog DB be the same instance as the Target DB?

A: While technically possible, it is not recommended. If the Target DB fails, there is a risk of losing the catalog along with it; therefore, placing it in a different DB instance or on a different server is best practice.

Q: How do I remove (unregister) a registered database?

A: Connect via RMAN and execute UNREGISTER DATABASE;.


Summary

  • The recovery catalog is effective for redundancy and long-term preservation of backup information.
  • Creation requires a three-stage process: CREATE USER, GRANT, and CREATE CATALOG.
  • Even in 19c and later, there are no major changes to the basic RMAN operational framework.
  • Design your environment considering the availability and backup of the Catalog DB itself.

This article is based on Oracle Database 19c (screens and default values may vary in other versions).

[reference]
Recovery Catalog Views

コメント

Copied title and URL