Oracle database 19cのリカバリカタログの作成方法について記載します。
リカバリ・カタログはRMANで使用されるデータベース・スキーマです。このカタログは専用のデータベースを作成して管理します。
環境は下図の通りです、単一インスタンスでコンテナは使用していません。

リカバリ・カタログ のメリット
- ターゲット・データベース(バックアップ対象データベース)の制御ファイルに格納されているRMANリポジトリが冗長化されます。ターゲット制御ファイルおよびすべてのバックアップが消失した場合でも、RMANメタデータはリカバリ・カタログに存在します。
- ターゲット・データベースのメタデータが集中化することで、レポート作成と管理タスクの実行が容易になります。
- 制御ファイルより長期のメタデータ履歴を格納できます。この機能は、制御ファイルの履歴より前の時点にリカバリする必要がある場合に有効です。制御ファイルのバックアップ保持期間はデフォルトで7日間(control_file_record_keep_time)
リカバリ・カタログ・データベースを使用することによって管理は複雑になることになりますが、長期のバックアップ履歴を使用できるようになります。
リカバリカタログ作成の流れ
- リカバリカタログ用ユーザの作成
- リカバリカタログ用テーブルの作成
- リカバリカタログへデータベースの登録
リカバリカタログ用ユーザの作成
sysユーザーはリカバリ・カタログ所有者に設定できないため、rmanの名前でDBユーザを作成しました。どのような名前でも作成できるなら問題ありません。「RECOVERY_CATALOG_OWNER」ロールで、リカバリ・カタログに必要なすべての権限がユーザーに付与されます。
データベースに接続
sqlplus / as sysdba
ユーザrmanを作成して権限を付与CREATE USER rman IDENTIFIED BY rman
TEMPORARY TABLESPACE temp
DEFAULT TABLESPACE users
QUOTA UNLIMITED ON users;
GRANT RECOVERY_CATALOG_OWNER TO rman;

リカバリカタログ用テーブルの作成
リカバリ・カタログを既存のデータベース内に作成する場合、リカバリ・カタログ・スキーマ用のデフォルト表領域を保持できる領域を追加します。リカバリ・カタログを格納するための新しいデータベースを作成する場合、リカバリ・カタログ・スキーマ自体の領域に加えて、下記のリカバリ・カタログ・データベース内の他のファイル用の領域も追加します。
SYSTEM表領域およびSYSAUX表領域
一時表領域
UNDO表領域
オンラインREDOログ・ファイル
1年間での一般的なリカバリ・カタログ領域要件は下表の通り
領域タイプ | 領域要件 |
---|---|
SYSTEM表領域 | 90MB |
一時表領域 | 5MB |
ロールバック表領域またはUNDO表領域 | 5MB |
リカバリ・カタログ表領域 | 登録されたデータベースごとに15MB |
オンラインREDOログ | ログごとに1MB |
今回は 既存のデータベース内にリカバリ・カタログを作成します。
リカバリカタログで使用するテーブルを作成します。
この作業はRMANコマンドで実行し、リカバリ・カタログのデータベースにテーブルを作ります。
RMANでカタログを作成するデータベースに接続 rman target / CATALOG rman@orcl
リカバリ・カタログテーブルの作成CREATE CATALOG TABLESPACE users;

リカバリ・カタログテーブルの確認sqlplus rman/rman@orcl
SELECT TABLE_NAME FROM USER_TABLES;
もしSI Object Browserを持っているならrmanユーザの58個テーブルが作成されたことを下図のように見れます。

リカバリカタログへデータベースの登録
作成されたテーブルに現在のRMANリポジトリの情報を格納します。
RMANで接続して、リカバリ・カタログに登録します。
rman target / CATALOG rman@orcl
REGISTER DATABASE;
登録を確認します。list backup;

ご参考まで