Oracle Multitenant環境において、本番データベースをそのままコピーして開発・検証環境を作りたいというニーズは非常に多いです。
そんなときに便利なのが「PDBスナップショット」です。
本記事では、使用できる条件、正しい構文(スナップショット名付き)、活用方法、代替手段まで、網羅的に解説します。
💰 【PR】Oracleエンジニアの市場価値、調べてみませんか?
Oracleのスキルは需要が高く、特定の資格や経験を持っていると年収が大幅にアップするケースがあります。まずはIT専門のエージェントで非公開求人をチェックしてみませんか?
✅ 目次
- PDBスナップショットとは
- 活用シーンとメリット
- スナップショットの仕組み(テキスト図)
- 使用可能な環境(ライセンス・ストレージ)
- スナップショットの作成と使用構文(スナップショット名付き)
- クローンPDBの作成手順
- スナップショットの削除と注意点
- 使えない場合の代替手段
- タグ候補
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の作成および構成




コメント