PDBスナップショットの完全ガイド|使用可能な環境・構文・活用法を徹底解説!

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

Oracle Multitenant環境において、本番データベースをそのままコピーして開発・検証環境を作りたいというニーズは非常に多いです。
そんなときに便利なのが「PDBスナップショット」です。
本記事では、使用できる条件、正しい構文(スナップショット名付き)、活用方法、代替手段まで、網羅的に解説します。

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

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


✅ 目次

  1. PDBスナップショットとは
  2. 活用シーンとメリット
  3. スナップショットの仕組み(テキスト図)
  4. 使用可能な環境(ライセンス・ストレージ)
  5. スナップショットの作成と使用構文(スナップショット名付き)
  6. クローンPDBの作成手順
  7. スナップショットの削除と注意点
  8. 使えない場合の代替手段
  9. タグ候補

1. 🔍 PDBスナップショットとは?

PDBスナップショットとは、ある時点のPDBの状態を保存し、それをもとにクローンPDBを作成できる機能です。

  • フルコピーではなくCopy-on-Write(Sparse Clone)で省スペース
  • 本番に影響を与えず、迅速に開発・検証環境を構築可能

2. 🎯 活用シーンとメリット

利用シーンメリット
テスト環境の構築本番PDBの内容をそのまま反映
バグ再現・調査用環境不具合発生時の状態を複製
分析用コピー重いクエリを本番に影響なく実行可能

3. 🧱 スナップショットの仕組み(テキスト図)

   初期状態(PDB01のみ存在)
+------------------------+
| PDB01(本番) |
| /u01/oradata/pdb01/ |
+------------------------+

↓ スナップショット作成(名前付き)
ALTER PLUGGABLE DATABASE pdb01 SNAPSHOT AS pdb01_snap;

↓ スナップショットからクローン作成
CREATE PLUGGABLE DATABASE pdb01_clone
FROM pdb01 USING SNAPSHOT pdb01_snap SNAPSHOT COPY;

+------------------------+
| PDB01(本番) |
+------------------------+
↓ Copy-on-Write
+------------------------+
| PDB01_CLONE(複製) |
+------------------------+

4. ✅ 使用可能な環境

PDBスナップショットはすべての環境で使えるわけではありません。以下の条件を満たす必要があります。

🧩 ライセンス要件

エディションスナップショット利用可否
Enterprise Edition(EE)✅ 利用可能
Standard Edition(SE, SE2)❌ 利用不可(ORA-12754 エラー)

確認方法:

SELECT BANNER_FULL FROM V$VERSION;

💾 ストレージ要件

ストレージ対応状況
Oracle ACFS✅ 対応
Oracle ZFS(またはZFS Appliance)✅ 対応
一般的なext4/XFS/NFS❌ 非対応(Sparse Clone不可)

🔍 機能の有効化確認

SELECT PARAMETER, VALUE FROM V$OPTION WHERE PARAMETER = 'Snapshot Carousel';

FALSE → スナップショット機能は無効(利用不可)


5. 🛠 スナップショットの作成構文(スナップショット名を指定)

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

-- スナップショットを作成(名前を明示)
ALTER PLUGGABLE DATABASE pdb01 SNAPSHOT AS pdb01_snap;
  • pdb01_snap はスナップショットの識別名
  • 同一PDB内で複数スナップショットを取る場合は別名にする

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

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


6. 📦 クローンPDBの作成手順

CREATE PLUGGABLE DATABASE pdb01_clone
FROM pdb01
USING SNAPSHOT pdb01_snap
SNAPSHOT COPY
FILE_NAME_CONVERT = ('/pdb01/', '/pdb01_clone/');
  • SNAPSHOT COPY によってCopy-on-Writeで効率的に作成
  • FILE_NAME_CONVERT は物理パスを適宜変更

7. 🗑 スナップショットの削除と注意点

🔻 スナップショット削除構文は存在しない

Oracleでは、DROP SNAPSHOT 構文は存在しません
代わりに、スナップショットを元にしたクローンPDBを削除すれば、関連スナップショットも解放されます。

DROP PLUGGABLE DATABASE pdb01_clone INCLUDING DATAFILES;

8. ❗ 使用できない場合の代替手段

スナップショットが使用できない場合(例:SE構成や非対応ストレージ)には、フルコピーのクローンを作成することで代替可能です。

CREATE PLUGGABLE DATABASE pdb01_clone
FROM pdb01
FILE_NAME_CONVERT = ('/pdb01/', '/pdb01_clone/');
  • 容量を多く消費するが、制限は少ない
  • ストレージの種類を問わず利用可能


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

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

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

コメント

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