Oracleのマルチテナント構成では、CDB全体を停止せずに、特定のPDBのみを個別にリストア・リカバリすることが可能です。本記事では、CDBをオープン状態のまま、PDB01だけを安全に復旧するためのRMANスクリプトの作成方法を解説します。
💰 【PR】Oracleエンジニアの市場価値、調べてみませんか?
Oracleのスキルは需要が高く、特定の資格や経験を持っていると年収が大幅にアップするケースがあります。まずはIT専門のエージェントで非公開求人をチェックしてみませんか?
✅ 対象環境と前提条件
| 項目 | 内容 |
|---|---|
| CDB名 | CDB01 |
| PDB名 | PDB01 |
| アーカイブログモード | 有効 |
| バックアップ | PDB01 のバックアップと必要なアーカイブログが取得済み |
| インスタンス状態 | CDB01 は OPEN状態(シャットダウン不要) |
🧾 スクリプトの作成手順
① スクリプトファイルを作成
vi /home/oracle/recover_pdb01.sh
#!/bin/bash
# Oracle環境変数(ご自身の環境に合わせて変更)
export ORACLE_SID=cdb01
export ORACLE_HOME=/u01/app/oracle/product/19.0.0/dbhome_1
export PATH=$ORACLE_HOME/bin:$PATH
# RMANでPDB01だけを復旧する処理
rman target / <<EOF
# 1. 対象のPDBをクローズ(CDBはOPENのままでOK)
SQL "ALTER PLUGGABLE DATABASE PDB01 CLOSE IMMEDIATE";
# 2. リストア処理:バックアップからPDB01を復元
RESTORE PLUGGABLE DATABASE PDB01;
# 3. リカバリ処理:アーカイブログ/REDOを使って整合性を確保
RECOVER PLUGGABLE DATABASE PDB01;
# 4. 復旧完了後、PDBを通常モードでオープン
SQL "ALTER PLUGGABLE DATABASE PDB01 OPEN";
EOF
② 実行権限の付与
chmod +x /home/oracle/recover_pdb01.sh
③ スクリプトの実行方法
/home/oracle/recover_pdb01.sh
※ 実行時に CDB はすでに OPEN 状態で問題ありません。RMAN内でSQL文として PDB01 のクローズ・オープンを制御します。
📘 各処理のポイント
| 処理内容 | 解説 |
|---|---|
ALTER PLUGGABLE DATABASE PDB01 CLOSE IMMEDIATE | 対象のPDBのみを閉じ、他のPDBやCDBには影響を与えない |
RESTORE PLUGGABLE DATABASE PDB01 | データファイルをバックアップから復元 |
RECOVER PLUGGABLE DATABASE PDB01 | アーカイブログやREDOログを適用し、一貫性を回復 |
ALTER PLUGGABLE DATABASE PDB01 OPEN | 通常モードで復旧したPDBを開く |
💰 【PR】Oracleエンジニアの市場価値、調べてみませんか?
Oracleのスキルは需要が高く、特定の資格や経験を持っていると年収が大幅にアップするケースがあります。まずはIT専門のエージェントで非公開求人をチェックしてみませんか?
🧠 実務的な注意点
- CDBはOPENのままで実行可能。他のPDBやサービスに影響を与えずに復旧可能です。
PDB01がすでにCLOSE状態でもエラーにはなりません。- データファイルが既に存在する場合、RMANが上書きリストアを試みます。必要に応じて事前に削除してください。
- OMF(Oracle Managed Files)環境では自動的に正しいファイル名でリストアされます。
🗂 テキスト図:PDB単位の復旧処理フロー
┌────────────────────────┐
│ スクリプト実行開始 │
└──────────┬────────────┘
▼
┌────────────────────────┐
│ CDB01はOPEN状態のまま │
├────────────────────────┤
│ ALTER PDB01 CLOSE │
├────────────────────────┤
│ RESTORE PDB01 │
├────────────────────────┤
│ RECOVER PDB01 │
├────────────────────────┤
│ ALTER PDB01 OPEN │
└────────────────────────┘
✅ スクリプト化のメリット
| メリット | 内容 |
|---|---|
| ✅ 高速対応 | スクリプトで即座に復旧作業を開始できる |
| ✅ 操作ミス防止 | 手作業による入力ミスを回避できる |
| ✅ 標準化・共有化 | 他のPDBにも同様の復旧手順が再利用できる |




コメント