Oracle CDB環境でのリカバリ・カタログ作成手順

CDB/PDB(マルチテナント)

~PDBに格納してRMANバックアップ情報を集中管理~

Oracle RMANは、バックアップやリストアに欠かせない強力なツールですが、リカバリ・カタログ(Recovery Catalog)を導入することで、複数DBを一元的に管理し、バックアップ履歴の永続保持なども可能になります。

この記事では、Oracle CDB構成環境でリカバリ・カタログをPDBに作成する手順を詳しく解説します。

💰 【PR】Oracleエンジニアの市場価値、調べてみませんか?

Oracleのスキルは需要が高く、特定の資格や経験を持っていると年収が大幅にアップするケースがあります。まずはIT専門のエージェントで非公開求人をチェックしてみませんか?


✅ リカバリ・カタログはCDB$ROOTには作成しない!

CDB環境では、リカバリ・カタログは必ずPDBに作成する必要があります。CDB$ROOTにカタログユーザーを作成することはOracleの推奨される構成ではありません


📌 前提環境

項目内容
カタログDBCDB構成(ホスト名:catdb-host
使用するPDBPDBRC
ディレクトリ/u01/app/oracle/oradata/V19M/pdbrc
ユーザー名rman_user
表領域名RMAN_TBS
パスワードrman_pass(任意で変更)

🧱 リカバリ・カタログ構築の流れ

① PDBRCの作成(必要に応じて)
② 表領域の作成
③ カタログユーザーの作成と権限付与
④ RMANでリカバリ・カタログを作成
⑤ ターゲットDBの登録

① PDBRCを作成(まだ存在しない場合)

まず、CDB$ROOTにて以下の手順でPDBRCを作成します。

-- CDB$ROOTにて実行
CREATE PLUGGABLE DATABASE PDBRC
ADMIN USER pdb_admin IDENTIFIED BY oracle
ROLES = (DBA)
DEFAULT TABLESPACE users
DATAFILE '/u01/app/oracle/oradata/V19M/pdbrc/system01.dbf' SIZE 500M AUTOEXTEND ON
FILE_NAME_CONVERT = ('/u01/app/oracle/oradata/V19M/pdbseed/', '/u01/app/oracle/oradata/V19M/pdbrc/');

-- PDBをオープン
ALTER PLUGGABLE DATABASE PDBRC OPEN;

② PDBRCに接続し、表領域の作成

-- PDBRCに切り替え
ALTER SESSION SET CONTAINER = PDBRC;

-- 表領域作成
CREATE TABLESPACE RMAN_TBS
DATAFILE '/u01/app/oracle/oradata/V19M/pdbrc/rman_tbs01.dbf'
SIZE 100M AUTOEXTEND ON;

③ カタログ用ユーザー作成と権限付与

CREATE USER rman_user IDENTIFIED BY rman_pass 
DEFAULT TABLESPACE RMAN_TBS
QUOTA UNLIMITED ON RMAN_TBS;

GRANT CONNECT, RESOURCE, RECOVERY_CATALOG_OWNER TO rman_user;
SQL> show con_name

CON_NAME
------------------------------
CDB$ROOT
SQL> CREATE PLUGGABLE DATABASE PDBRC ★PDBRC作成
2 ADMIN USER pdb_admin IDENTIFIED BY oracle
3 ROLES = (DBA)
4 DEFAULT TABLESPACE users
5 DATAFILE '/u01/app/oracle/oradata/V19M/pdbrc/system01.dbf' SIZE 500M AUTOEXTEND ON
6 FILE_NAME_CONVERT = ('/u01/app/oracle/oradata/V19M/pdbseed/', '/u01/app/oracle/oradata/V19M/pdbrc/');

プラガブル・データベースが作成されました。

SQL> show pdbs

CON_ID CON_NAME OPEN MODE RESTRICTED
---------- ------------------------------ ---------- ----------
2 PDB$SEED READ ONLY NO
3 PDB01 READ WRITE NO
4 PDB02 READ WRITE NO
5 PDBRC MOUNTED
SQL> ALTER PLUGGABLE DATABASE PDBRC OPEN;

プラガブル・データベースが変更されました。

SQL> show pdbs

CON_ID CON_NAME OPEN MODE RESTRICTED
---------- ------------------------------ ---------- ----------
2 PDB$SEED READ ONLY NO
3 PDB01 READ WRITE NO
4 PDB02 READ WRITE NO
5 PDBRC READ WRITE NO
SQL> ALTER SESSION SET CONTAINER = PDBRC;

セッションが変更されました。

SQL> show con_name

CON_NAME
------------------------------
PDBRC
SQL> CREATE TABLESPACE RMAN_TBS ★リカバリカタログ用表領域を作成
2 DATAFILE '/u01/app/oracle/oradata/V19M/pdbrc/rman_tbs01.dbf'
3 SIZE 100M AUTOEXTEND ON;

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

SQL> CREATE USER rman_user IDENTIFIED BY rman_pass ★カタログ用ユーザー作成
2 DEFAULT TABLESPACE RMAN_TBS
3 QUOTA UNLIMITED ON RMAN_TBS;

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

SQL> GRANT CONNECT, RESOURCE, RECOVERY_CATALOG_OWNER TO rman_user;

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

💰 【PR】Oracleエンジニアの市場価値、調べてみませんか?

Oracleのスキルは需要が高く、特定の資格や経験を持っていると年収が大幅にアップするケースがあります。まずはIT専門のエージェントで非公開求人をチェックしてみませんか?


④ RMANでカタログを作成

$ rman catalog rman_user/rman_pass@pdbrc
RMAN> CREATE CATALOG;

出力例:

recovery catalog created
[oracle@v19single ~]$ rman catalog rman_user/rman_pass@pdbrc

Recovery Manager: Release 19.0.0.0.0 - Production on 木 5月 15 10:37:26 2025
Version 19.21.0.0.0

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

リカバリ・カタログ・データベースに接続されました。

RMAN> CREATE CATALOG;

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

⑤ ターゲットDBの登録

$ rman target / catalog rman_user/rman_pass@pdbrc
RMAN> REGISTER DATABASE;

出力例:

database registered in recovery catalog
[oracle@v19single ~]$ rman target / catalog rman_user/rman_pass@pdbrc

Recovery Manager: Release 19.0.0.0.0 - Production on 木 5月 15 10:38:16 2025
Version 19.21.0.0.0

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

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

RMAN> REGISTER DATABASE;

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

📝 tnsnames.oraの設定例

PDBRC =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = catdb-host)(PORT = 1521))
(CONNECT_DATA =
(SERVICE_NAME = pdbrc)
)
)

🗂 構成イメージ(テキスト図)

+----------------------------+
| ターゲットDB |
| CDB or 非CDB構成 |
| |
| RMAN実行環境 |
+------------+--------------+
|
| 接続(target /)
v
+------------+--------------+
| カタログDB(CDB構成) |
| └──PDBRC |
| └──RMAN_USER |
| └──RMAN_TBS |
| └──/u01/app/oracle/oradata/V19M/pdbrc/ |
+---------------------------+

✅ まとめ

  • リカバリ・カタログはCDB$ROOTではなくPDBに作成する
  • カタログ用PDBが存在しない場合はCREATE PLUGGABLE DATABASEで作成
  • CREATE CATALOGでカタログを構築、REGISTER DATABASEでターゲットDB登録
  • 将来的に複数DB管理や履歴の永続保持が可能になる


[参考]
4 CDBの作成および構成

💰 【PR】Oracleエンジニアの市場価値、調べてみませんか?

Oracleのスキルは需要が高く、特定の資格や経験を持っていると年収が大幅にアップするケースがあります。まずはIT専門のエージェントで非公開求人をチェックしてみませんか?

コメント

タイトルとURLをコピーしました