〜BACKUP PLUGGABLE DATABASEの使い方も徹底解説〜
Oracle Database 12c以降で導入されたマルチテナント構成(CDB/PDB)により、RMANのバックアップ運用にも新たな視点が必要となりました。
この記事では、CDB全体のバックアップ方法と、PDB単位でのバックアップ方法(BACKUP PLUGGABLE DATABASE含む)を初心者にもわかりやすく図解付きで解説します。
💰 【PR】Oracleエンジニアの市場価値、調べてみませんか?
Oracleのスキルは需要が高く、特定の資格や経験を持っていると年収が大幅にアップするケースがあります。まずはIT専門のエージェントで非公開求人をチェックしてみませんか?
🔷 CDBとPDBの構成概要(おさらい)
[CDBとPDBの構成図]
+----------------------------+
| CDB$ROOT | ← 親コンテナ
+----------------------------+
| PDB$SEED | ← テンプレートPDB
+----------------------------+
| PDB01 | ← ユーザーデータ格納
+----------------------------+
| PDB02 |
+----------------------------+
🔶 CDB全体をバックアップする方法
CDB全体をバックアップすることで、CDB$ROOT、PDB$SEED、すべてのPDBが対象になります。
✅ 接続
$ rman target /
✅ バックアップ実行
RMAN> BACKUP DATABASE PLUS ARCHIVELOG;
CDB全体とアーカイブログを含めたフルバックアップが取得されます。
[oracle@v19single ~]$ rman target /
Recovery Manager: Release 19.0.0.0.0 - Production on 木 5月 15 09:54:47 2025
Version 19.21.0.0.0
Copyright (c) 1982, 2019, Oracle and/or its affiliates. All rights reserved.
ターゲット・データベース: V19M (DBID=1384470285)に接続されました
RMAN> BACKUP DATABASE PLUS ARCHIVELOG;
backupを25-05-15で開始しています
現在のログがアーカイブされました。
リカバリ・カタログのかわりにターゲット・データベース制御ファイルを使用しています
チャネル: ORA_DISK_1が割り当てられました
チャネルORA_DISK_1: SID=78 デバイス・タイプ=DISK
チャネルORA_DISK_1: アーカイブ・ログ・バックアップ・セットを開始しています
チャネルORA_DISK_1: バックアップ・セットにアーカイブ・ログを指定しています
入力アーカイブ・ログ・スレッド=1 順序=14 レコードID=1 スタンプ=1201168574
チャネルORA_DISK_1: ピース1 (25-05-15)を起動します
チャネルORA_DISK_1: ピース1 (25-05-15)が完了しました
ピース・ハンドル=/u01/app/oracle/product/19.0.0/dbhome_1/dbs/013pgo5v_1_1_1 タグ=TAG20250515T095615 コメント=NONE
チャネルORA_DISK_1: バックアップ・セットが完了しました。経過時間: 00:00:03
backupを25-05-15で終了しました
backupを25-05-15で開始しています
チャネルORA_DISK_1の使用
チャネルORA_DISK_1: フル・データファイル・バックアップ・セットを開始しています
チャネルORA_DISK_1: バックアップ・セットにデータファイルを指定しています
入力データファイル ファイル番号=00001 名前=/u01/app/oracle/oradata/V19M/system01.dbf ★CDB$ROOTをバックアップ
入力データファイル ファイル番号=00003 名前=/u01/app/oracle/oradata/V19M/sysaux01.dbf
入力データファイル ファイル番号=00004 名前=/u01/app/oracle/oradata/V19M/undotbs01.dbf
入力データファイル ファイル番号=00007 名前=/u01/app/oracle/oradata/V19M/users01.dbf
チャネルORA_DISK_1: ピース1 (25-05-15)を起動します
チャネルORA_DISK_1: ピース1 (25-05-15)が完了しました
ピース・ハンドル=/u01/app/oracle/product/19.0.0/dbhome_1/dbs/023pgo63_2_1_1 タグ=TAG20250515T095618 コメント=NONE
チャネルORA_DISK_1: バックアップ・セットが完了しました。経過時間: 00:00:15
チャネルORA_DISK_1: フル・データファイル・バックアップ・セットを開始しています
チャネルORA_DISK_1: バックアップ・セットにデータファイルを指定しています
入力データファイル ファイル番号=00010 名前=/u01/app/oracle/oradata/V19M/PDB01/sysaux01.dbf ★PDB01をバックアップ
入力データファイル ファイル番号=00009 名前=/u01/app/oracle/oradata/V19M/PDB01/system01.dbf
入力データファイル ファイル番号=00011 名前=/u01/app/oracle/oradata/V19M/PDB01/undotbs01.dbf
入力データファイル ファイル番号=00012 名前=/u01/app/oracle/oradata/V19M/PDB01/users01.dbf
チャネルORA_DISK_1: ピース1 (25-05-15)を起動します
チャネルORA_DISK_1: ピース1 (25-05-15)が完了しました
ピース・ハンドル=/u01/app/oracle/product/19.0.0/dbhome_1/dbs/033pgo6i_3_1_1 タグ=TAG20250515T095618 コメント=NONE
チャネルORA_DISK_1: バックアップ・セットが完了しました。経過時間: 00:00:07
チャネルORA_DISK_1: フル・データファイル・バックアップ・セットを開始しています
チャネルORA_DISK_1: バックアップ・セットにデータファイルを指定しています
入力データファイル ファイル番号=00014 名前=/u01/app/oracle/oradata/V19M/PDB02/sysaux01.dbf ★PDB02をバックアップ
入力データファイル ファイル番号=00013 名前=/u01/app/oracle/oradata/V19M/PDB02/system01.dbf
入力データファイル ファイル番号=00015 名前=/u01/app/oracle/oradata/V19M/PDB02/undotbs01.dbf
入力データファイル ファイル番号=00016 名前=/u01/app/oracle/oradata/V19M/PDB02/users01.dbf
チャネルORA_DISK_1: ピース1 (25-05-15)を起動します
チャネルORA_DISK_1: ピース1 (25-05-15)が完了しました
ピース・ハンドル=/u01/app/oracle/product/19.0.0/dbhome_1/dbs/043pgo6p_4_1_1 タグ=TAG20250515T095618 コメント=NONE
チャネルORA_DISK_1: バックアップ・セットが完了しました。経過時間: 00:00:07
チャネルORA_DISK_1: フル・データファイル・バックアップ・セットを開始しています
チャネルORA_DISK_1: バックアップ・セットにデータファイルを指定しています
入力データファイル ファイル番号=00006 名前=/u01/app/oracle/oradata/V19M/pdbseed/sysaux01.dbf
入力データファイル ファイル番号=00005 名前=/u01/app/oracle/oradata/V19M/pdbseed/system01.dbf
入力データファイル ファイル番号=00008 名前=/u01/app/oracle/oradata/V19M/pdbseed/undotbs01.dbf
チャネルORA_DISK_1: ピース1 (25-05-15)を起動します
チャネルORA_DISK_1: ピース1 (25-05-15)が完了しました
ピース・ハンドル=/u01/app/oracle/product/19.0.0/dbhome_1/dbs/053pgo70_5_1_1 タグ=TAG20250515T095618 コメント=NONE
チャネルORA_DISK_1: バックアップ・セットが完了しました。経過時間: 00:00:07
backupを25-05-15で終了しました
backupを25-05-15で開始しています
現在のログがアーカイブされました。
チャネルORA_DISK_1の使用
チャネルORA_DISK_1: アーカイブ・ログ・バックアップ・セットを開始しています
チャネルORA_DISK_1: バックアップ・セットにアーカイブ・ログを指定しています
入力アーカイブ・ログ・スレッド=1 順序=15 レコードID=2 スタンプ=1201168615
チャネルORA_DISK_1: ピース1 (25-05-15)を起動します
チャネルORA_DISK_1: ピース1 (25-05-15)が完了しました
ピース・ハンドル=/u01/app/oracle/product/19.0.0/dbhome_1/dbs/063pgo78_6_1_1 タグ=TAG20250515T095655 コメント=NONE
チャネルORA_DISK_1: バックアップ・セットが完了しました。経過時間: 00:00:01
backupを25-05-15で終了しました
Control File and SPFILE Autobackupを25-05-15で開始しています
ピース・ハンドル=/u01/app/oracle/product/19.0.0/dbhome_1/dbs/c-1384470285-20250515-00 コメント=NONE
Control File and SPFILE Autobackupを25-05-15で終了しました
Recovery Managerが完了しました。
💰 【PR】Oracleエンジニアの市場価値、調べてみませんか?
Oracleのスキルは需要が高く、特定の資格や経験を持っていると年収が大幅にアップするケースがあります。まずはIT専門のエージェントで非公開求人をチェックしてみませんか?
🔶 PDB単位でバックアップする方法①:PDBへ直接接続してBACKUP DATABASE
Oracle 12.1.0.2以降では、PDBに直接接続してバックアップが可能です。
✅ 接続
$ rman target sys/oracle@pdb01
tnsnames.ora 例:
PDB01 =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = dbhost)(PORT = 1521))
(CONNECT_DATA =
(SERVICE_NAME = pdb01)
)
)
✅ バックアップ実行
RMAN> BACKUP DATABASE;
この方法で取得できるのはPDB内のデータファイルのみです。
アーカイブログ、SPFILE、制御ファイルは含まれません。
[oracle@v19single ~]$ rman target sys/oracle@pdb01 ★PDB01に接続
Recovery Manager: Release 19.0.0.0.0 - Production on 木 5月 15 10:02:48 2025
Version 19.21.0.0.0
Copyright (c) 1982, 2019, Oracle and/or its affiliates. All rights reserved.
ターゲット・データベース: V19M:PDB01 (DBID=901964044)に接続されました
RMAN> BACKUP DATABASE;
backupを25-05-15で開始しています
リカバリ・カタログのかわりにターゲット・データベース制御ファイルを使用しています
チャネル: ORA_DISK_1が割り当てられました
チャネルORA_DISK_1: SID=75 デバイス・タイプ=DISK
チャネルORA_DISK_1: フル・データファイル・バックアップ・セットを開始しています
チャネルORA_DISK_1: バックアップ・セットにデータファイルを指定しています
入力データファイル ファイル番号=00010 名前=/u01/app/oracle/oradata/V19M/PDB01/sysaux01.dbf ★PDB01をバックアップ
入力データファイル ファイル番号=00009 名前=/u01/app/oracle/oradata/V19M/PDB01/system01.dbf
入力データファイル ファイル番号=00011 名前=/u01/app/oracle/oradata/V19M/PDB01/undotbs01.dbf
入力データファイル ファイル番号=00012 名前=/u01/app/oracle/oradata/V19M/PDB01/users01.dbf
チャネルORA_DISK_1: ピース1 (25-05-15)を起動します
チャネルORA_DISK_1: ピース1 (25-05-15)が完了しました
ピース・ハンドル=/u01/app/oracle/product/19.0.0/dbhome_1/dbs/083pgokl_8_1_1 タグ=TAG20250515T100405 コメント=NONE
チャネルORA_DISK_1: バックアップ・セットが完了しました。経過時間: 00:00:07
backupを25-05-15で終了しました
RMAN> exit
Recovery Managerが完了しました。
🔶 PDB単位でバックアップする方法②:CDB接続で BACKUP PLUGGABLE DATABASE
より柔軟な方法として、CDB$ROOTに接続した状態で特定のPDBだけをバックアップすることも可能です。
✅ 接続
$ rman target /
✅ 単一のPDBをバックアップ
RMAN> BACKUP PLUGGABLE DATABASE pdb01;
このコマンドは CDB接続状態で、指定したPDBだけをバックアップします。
※アーカイブログや制御ファイルのバックアップも一緒に行いたい場合は以下のようにします。
RMAN> BACKUP PLUGGABLE DATABASE pdb01 PLUS ARCHIVELOG;
✅ 複数のPDBを一括バックアップ
RMAN> BACKUP PLUGGABLE DATABASE pdb01, pdb02;
[oracle@v19single ~]$ rman target /
Recovery Manager: Release 19.0.0.0.0 - Production on 木 5月 15 10:04:30 2025
Version 19.21.0.0.0
Copyright (c) 1982, 2019, Oracle and/or its affiliates. All rights reserved.
ターゲット・データベース: V19M (DBID=1384470285)に接続されました
RMAN> BACKUP PLUGGABLE DATABASE pdb01, pdb02;
backupを25-05-15で開始しています
リカバリ・カタログのかわりにターゲット・データベース制御ファイルを使用しています
チャネル: ORA_DISK_1が割り当てられました
チャネルORA_DISK_1: SID=78 デバイス・タイプ=DISK
チャネルORA_DISK_1: フル・データファイル・バックアップ・セットを開始しています
チャネルORA_DISK_1: バックアップ・セットにデータファイルを指定しています
入力データファイル ファイル番号=00010 名前=/u01/app/oracle/oradata/V19M/PDB01/sysaux01.dbf ★PDB01をバックアップ
入力データファイル ファイル番号=00009 名前=/u01/app/oracle/oradata/V19M/PDB01/system01.dbf
入力データファイル ファイル番号=00011 名前=/u01/app/oracle/oradata/V19M/PDB01/undotbs01.dbf
入力データファイル ファイル番号=00012 名前=/u01/app/oracle/oradata/V19M/PDB01/users01.dbf
チャネルORA_DISK_1: ピース1 (25-05-15)を起動します
チャネルORA_DISK_1: ピース1 (25-05-15)が完了しました
ピース・ハンドル=/u01/app/oracle/product/19.0.0/dbhome_1/dbs/093pgolt_9_1_1 タグ=TAG20250515T100445 コメント=NONE
チャネルORA_DISK_1: バックアップ・セットが完了しました。経過時間: 00:00:07
チャネルORA_DISK_1: フル・データファイル・バックアップ・セットを開始しています
チャネルORA_DISK_1: バックアップ・セットにデータファイルを指定しています
入力データファイル ファイル番号=00014 名前=/u01/app/oracle/oradata/V19M/PDB02/sysaux01.dbf ★PDB02をバックアップ
入力データファイル ファイル番号=00013 名前=/u01/app/oracle/oradata/V19M/PDB02/system01.dbf
入力データファイル ファイル番号=00015 名前=/u01/app/oracle/oradata/V19M/PDB02/undotbs01.dbf
入力データファイル ファイル番号=00016 名前=/u01/app/oracle/oradata/V19M/PDB02/users01.dbf
チャネルORA_DISK_1: ピース1 (25-05-15)を起動します
チャネルORA_DISK_1: ピース1 (25-05-15)が完了しました
ピース・ハンドル=/u01/app/oracle/product/19.0.0/dbhome_1/dbs/0a3pgom5_10_1_1 タ グ=TAG20250515T100445 コメント=NONE
チャネルORA_DISK_1: バックアップ・セットが完了しました。経過時間: 00:01:45
backupを25-05-15で終了しました
Control File and SPFILE Autobackupを25-05-15で開始しています
ピース・ハンドル=/u01/app/oracle/product/19.0.0/dbhome_1/dbs/c-1384470285-20250515-01 コメント=NONE
Control File and SPFILE Autobackupを25-05-15で終了しました
RMAN>
🔶 バックアップ構成の違い(図解)
■ CDB接続でのCDB全体バックアップ
+------------------+
| CDB$ROOT |◄────┐
+------------------+ │
| PDB$SEED |◄────┤
+------------------+ │
| PDB01 |◄────┤
+------------------+ │
| PDB02 |◄────┤
+------------------+ │
▼
RMAN> BACKUP DATABASE PLUS ARCHIVELOG;
■ CDB接続でのPDB単位バックアップ
+------------------+
| PDB01 |◄──── RMAN> BACKUP PLUGGABLE DATABASE pdb01;
+------------------+
■ PDB接続でのバックアップ
+------------------+
| PDB01 |◄──── RMAN> BACKUP DATABASE;
+------------------+
🔶 バックアップ方法の違いと機能比較
| 機能項目 | CDB全体 (BACKUP DATABASE) | BACKUP PLUGGABLE DATABASE | PDB接続での BACKUP DATABASE |
|---|---|---|---|
| バックアップ対象 | 全てのPDBとCDB$ROOT | 指定したPDB | 接続しているPDBのみ |
| アーカイブログ取得可否 | 〇(PLUS ARCHIVELOG) | 〇(PLUS ARCHIVELOG) | ×(アーカイブログ対象外) |
| SPFILE・制御ファイル含むか | 〇 | 〇(明示指定で含む) | × |
| 複数PDBを一括バックアップ | ×(全体) | 〇(カンマ区切りで指定) | ×(1PDBのみ) |
✅ 実務での使い分け例
| 用途 | 推奨方法 |
|---|---|
| 本番環境のフルバックアップ | BACKUP DATABASE PLUS ARCHIVELOG |
| 特定PDBだけのバックアップ | BACKUP PLUGGABLE DATABASE |
| テスト用に軽くバックアップ | PDB接続で BACKUP DATABASE |
✅ 補足:バックアップ構成確認コマンド
バックアップ対象のファイルは以下のRMANコマンドで確認できます。
RMAN> LIST BACKUP OF DATABASE;
RMAN> LIST BACKUP SUMMARY;
🔚 まとめ
BACKUP PLUGGABLE DATABASE は、CDB接続状態から特定のPDBだけを柔軟にバックアップできる強力な手段です。
マルチテナント環境が主流となる中で、目的に応じたバックアップ戦略を取ることが重要です。
[参考]
4 CDBの作成および構成




コメント