Oracle RMANで特定のPDBをクローズ後にリストア・リカバリするスクリプト

OS

Oracleのマルチテナント構成では、CDB全体を停止せずに、特定のPDBのみを個別にリストア・リカバリすることが可能です。本記事では、CDBをオープン状態のまま、PDB01だけを安全に復旧するためのRMANスクリプトの作成方法を解説します。

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

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


✅ 対象環境と前提条件

項目内容
CDB名CDB01
PDB名PDB01
アーカイブログモード有効
バックアップPDB01 のバックアップと必要なアーカイブログが取得済み
インスタンス状態CDB01OPEN状態(シャットダウン不要)

🧾 スクリプトの作成手順

① スクリプトファイルを作成

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にも同様の復旧手順が再利用できる


[参考]
バックアップおよびリカバリ・ユーザーズ・ガイド

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

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

コメント

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