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
- Background and Basic Knowledge of Recovery Catalog
- How to Create a Recovery Catalog / Implementation Steps
- Execution Example: Taking and Verifying a Backup
- Troubleshooting
- Operational and Security Notes
- FAQ: Frequently Asked Questions about Recovery Catalog
- Summary
Conclusion: Quick Steps for Recovery Catalog Creation
Building a recovery catalog is completed in the following 4 steps:
- Prepare the Catalog DB: Create a dedicated tablespace and user, and grant necessary privileges.
- Connection Settings: Add the connection definition for the catalog DB to
tnsnames.ora. - Create Catalog: Connect to the catalog DB from RMAN and execute
CREATE CATALOG. - Register DB: Perform
REGISTER DATABASEfor 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:
SYSDBAconnection 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 Code | Primary Cause | Action |
| ORA-01017 | Username/password mismatch | Reconfirm rcuser password or check SQLNet authentication |
| ORA-12154 | Cannot resolve TNS connection identifier | Check for typos in tnsnames.ora or verify file location |
| RMAN-06004 | Catalog DB is not started | Check the instance status of the Catalog DB and ensure it is OPEN |
| RMAN-06428 | Catalog is not installed | Execute 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
rcuserpassword 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 CATALOGcommand 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, andCREATE 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


コメント