12 PDBスナップショット・カルーセルの管理

指定したPDBのPDBスナップショット・カルーセルを構成し、スナップショットを手動または自動的に作成して、スナップショットの最大数を設定できます。

PDBスナップショット・カルーセルについて

PDBスナップショット・カルーセルとは、PDBスナップショットのライブラリのことです。

PDBスナップショットはPDBのPoint-in-Timeコピーです。スナップショットの作成中に、ソースPDBを読取り専用または読取り/書込みでオープンできます。スナップショットは、CREATE PLUGGABLE DATABASE (またはALTER PLUGGABLE DATABASE)のSNAPSHOT句を使用して手動で作成するか、またはEVERY間隔句を使用して自動的に作成できます。ストレージ・システムでスパース・クローンがサポートされている場合は、前述のコマンドではスパース・コピーが作成されます。それ以外の場合は、完全コピーが作成されます。

関連項目:

各種エディションおよびサービスでサポートされる機能の詳細は、『Oracle Databaseライセンス情報ユーザー・マニュアル』を参照

PDBスナップショット・カルーセルの目的

PDBスナップショット・カルーセルは、Point-in-Timeリカバリ用およびクローニング用に最新PDBコピーのライブラリを維持するために役立ちます。

開発およびテスト用にPDBをクローニング

一般的な開発ユースケースでは、CREATE PLUGGABLE DATABASE newpdb FROM srcpdbという形式のコマンドを使用して、テスト用に本番PDBをクローニングします。CDBがARCHIVELOGモードおよびローカルUNDOモードの場合、ソースの本番PDBは読取り/書込みモードでオープンでき、そのクローニング時に十分に機能します(ホット・クローニングと呼ばれる手法)。ホット・クローンPDBは、ALTER PLUGGABLE DATABASE ... OPEN文が完了したSCNの時点でのソースPDBとトランザクション的に一貫した状態です。

次のステップは、一般的な開発シナリオを示しています。

  1. pdb1_prodという本番PDBがオープンされ使用されている間に、pdb1_test_masterというリフレッシュ可能クローンPDBを作成します。

    リフレッシュ可能クローンPDBは、読取り専用モードでのみオープンできます。そのクローンPDBをpdb1_prodからリフレッシュするには、それをクローズする必要があります。

  2. ALTER PLUGGABLE DATABASE pdb1_test_master SNAPSHOT MODE EVERY 24 HOURSを実行します。これにより、pdb1_test_masterの自動スナップショットを毎日生成するようにPDBが構成されます。

  3. テスト用に新しいPDBが必要な場合は、CREATE PLUGGABLE DATABASE … USING SNAPSHOTコマンドを使用してフル・クローンPDBを作成します。

  4. CREATE PLUGGABLE DATABASE ... SNAPSHOT COPYを使用して、フル・クローンPDBのスパース・スナップショット・コピーPDBを作成します。

次の図は、4月5日に取得したPDBスナップショットからクローンのpdb1_test_full1を作成する手順を示しています。図には、pdb1_test_full1から作成された3つのスナップショット・コピーPDBが示されています。

図12-1 リフレッシュ可能なクローンPDBの自動スナップショット

図12-1の説明が続きます
「図12-1 リフレッシュ可能なクローンPDBの自動スナップショット」の説明

PDBスナップショット・カルーセルを使用したPoint-in-Timeリストア

PDBのスナップショットを毎日同じ時刻に取得するという方法があります。データ・ロード前に、PDBスナップショットを手動で取得する方法もあります。いずれの場合も、PDBスナップショット・カルーセルを使用すると、利用可能なPDBスナップショットを使用してPDBをリストアできます。

たとえば、pdb1_prodという名前の販売履歴PDBは、毎日午前12時1分に自動スナップショットを生成します。4月9日月曜日の午後に実行した日次データ・ロード時に、誤ったデータをロードしてPDBが破損しました。4月9日月曜日のスナップショットに基づいて新しい本番PDBを作成し、破損したPDBを削除して、データ・ロードを再試行できます。

図12-2 スナップショットを使用した本番PDBのリストア

図12-2の説明が続きます
「図12-2 スナップショットを使用した本番PDBのリストア」の説明

関連項目:

PDBスナップショット・カルーセルの仕組み

特定のPDBのカルーセルは、このPDBのコピーの循環ライブラリです。

データベースでは、必要に応じてまたは自動的に、カルーセル内に連続してコピーを作成します。スナップショット制限に達すると、データベースでは最も古いスナップショットが上書きされます。

PDBスナップショットの内容

PDBスナップショットの内容は、基礎となるファイル・システムでスパース・ファイルがサポートされているかどうかで異なります。

スナップショット名

データベース管理PDBスナップショットの名前は、ユーザー指定またはシステム生成のいずれかになります。システム生成のスナップショット名の場合は、スナップショットSCNを含む一意の識別子にSNAP_という接頭辞が付きます。たとえば、次の問合せにより、システム生成の名前と取得時のSCNが付いた3つのスナップショットが示されます。

SET LINESIZE 200
SET PAGESIZE 50000

COL CON_ID FORMAT 999999
COL CON_NAME FORMAT a15
COL SNAPSHOT_NAME FORMAT a27

SELECT CON_ID, CON_NAME, SNAPSHOT_NAME, SNAPSHOT_SCN FROM DBA_PDB_SNAPSHOTS;

 CON_ID CON_NAME        SNAPSHOT_NAME               SNAPSHOT_SCN
------- --------------- --------------------------- ------------
      5 HRPDB           SNAP_1389467754_993556301        2925293
      5 HRPDB           SNAP_1389467754_993556306        2925679
      5 HRPDB           SNAP_1389467754_993556309        2925698

ノート:

各種エディションおよびサービスでサポートされる機能の詳細は、『Oracle Databaseライセンス情報ユーザー・マニュアル』を参照してください

フル・スナップショットとスパース・スナップショット

ALTER PLUGGABLE DATABASE ... SNAPSHOTによって生成されるスナップショットの内容は、基礎となるファイル・システムに応じて異なります。基礎となるファイル・システムでスパース・コピーがサポートされている場合、PDBレベルのスナップショットはスパースとなります。最初のPDB管理PDBスナップショットのみがフルになります。それ以外の場合、PDBスナップショットにはデータ・ファイルの完全コピーが含まれます。スナップショットには、そのスナップショットからPDBを作成するために必要な他のファイルが含まれています。

スナップショット・ディレクトリ

すべてのPDBに、専用のスナップショット・ディレクトリがあります。このディレクトリ内には、各スナップショットの取得時のSCNに関係する名前が付いた専用のサブディレクトリがあります。次の問合せにより、DBIDが1389467754hrpdbのスパースPDBスナップショットが示されます。

SET LINESIZE 200
SET PAGESIZE 50000

COL SNAPSHOT_NAME FORMAT a27
COL FULL_SNAPSHOT_PATH FORMAT a65

SELECT SNAPSHOT_NAME, SNAPSHOT_SCN, FULL_SNAPSHOT_PATH FROM DBA_PDB_SNAPSHOTS;

SNAPSHOT_NAME               SNAPSHOT_SCN FULL_SNAPSHOT_PATH
--------------------------- ------------ ---------------------------------------
SNAP_1389467754_993556301        2925293 /d1/snapshots/pdb_1389467754/2925293/
SNAP_1389467754_993556306        2925679 /d1/snapshots/pdb_1389467754/2925679/
SNAP_1389467754_993556309        2925698 /d1/snapshots/pdb_1389467754/2925698/

ノート:

スナップショットがスパースではなくフルである場合、フル・スナップショット・パスでは接尾辞が.pdbのアーカイブを指定します。

/d1/snapshots/pdb_1389467754/2925698/のディレクトリには、次のファイルが格納されています。

archparlog_1_63_52d1986a_993552590.arc  
o1_mf_salestbs_g03341t2_.dbf
o1_mf_sysext_g0333vqw_.dbf
o1_mf_undo_1_g033gd2j_.dbf            
o1_mf_sysaux_g0333vqv_.dbf   
o1_mf_system_g0333vqt_.dbf
HRPDB.xml

このセットには、データファイル、アーカイブREDOログ・ファイルおよびPDBスナップショットに関するメタデータを格納しているXMLファイルが含まれます。次のduコマンドにより、スパースのスナップショット・データ・ファイルのサイズが、データ・ファイルのサイズと比較して小さいことが示されます。

% du -h *dbf
16K     o1_mf_salestbs_g03341t2_.dbf
16K     o1_mf_sysaux_g0333vqv_.dbf
16K     o1_mf_sysext_g0333vqw_.dbf
16K     o1_mf_system_g0333vqt_.dbf
16K     o1_mf_undo_1_g033gd2j_.dbf

次のデータ・ディクショナリ結合により、スナップショット2925698のスナップショット・ファイル名とタイプが示されます。

SELECT f.SNAPSHOT_FILENAME, f.SNAPSHOT_FILETYPE
FROM   DBA_PDB_SNAPSHOTS s, DBA_PDB_SNAPSHOTFILE f
WHERE  s.SNAPSHOT_SCN=f.SNAPSHOT_SCN
AND    s.CON_ID=f.CON_ID
ORDER BY s.SNAPSHOT_SCN DESC;

SNAPSHOT_FILENAME                                                        SNAPSHOT
-----------------------------------------------------------------        --------
/d1/snapshots/pdb_1389467754/2925698/o1_mf_sysaux_g0333vqv_.dbf              DATA
/d1/snapshots/pdb_1389467754/2925698/o1_mf_system_g0333vqt_.dbf              DATA
/d1/snapshots/pdb_1389467754/2925698/HRPDB.xml                                XML
/d1/snapshots/pdb_1389467754/2925698/o1_mf_sysext_g0333vqw_.dbf              DATA
/d1/snapshots/pdb_1389467754/2925698/o1_mf_salestbs_g03341t2_.dbf            DATA
/d1/snapshots/pdb_1389467754/2925698/o1_mf_undo_1_g033gd2j_.dbf              DATA
/d1/snapshots/pdb_1389467754/2925698/archparlog_1_63_52d1986a_993552590.arc  ARCH
/d1/snapshots/pdb_1389467754/2925679/o1_mf_sysext_g0333vqw_.dbf              DATA
/d1/snapshots/pdb_1389467754/2925679/o1_mf_salestbs_g03341t2_.dbf            DATA
/d1/snapshots/pdb_1389467754/2925679/o1_mf_undo_1_g033gd2j_.dbf              DATA
/d1/snapshots/pdb_1389467754/2925679/o1_mf_sysaux_g0333vqv_.dbf              DATA
/d1/snapshots/pdb_1389467754/2925679/archparlog_1_63_52d1986a_993552590.arc  ARCH
/d1/snapshots/pdb_1389467754/2925679/HRPDB.xml                                XML
/d1/snapshots/pdb_1389467754/2925679/o1_mf_system_g0333vqt_.dbf              DATA
/d1/snapshots/pdb_1389467754/2925293/HRPDB.xml                                XML
/d1/snapshots/pdb_1389467754/2925293/o1_mf_system_g0333vqt_.dbf              DATA
/d1/snapshots/pdb_1389467754/2925293/o1_mf_sysaux_g0333vqv_.dbf              DATA
/d1/snapshots/pdb_1389467754/2925293/o1_mf_undo_1_g033gd2j_.dbf              DATA
/d1/snapshots/pdb_1389467754/2925293/o1_mf_salestbs_g03341t2_.dbf            DATA
/d1/snapshots/pdb_1389467754/2925293/o1_mf_sysext_g0333vqw_.dbf              DATA
/d1/snapshots/pdb_1389467754/2925293/archparlog_1_63_52d1986a_993552590.arc  ARCH
PDBスナップショット・カルーセルの内容

PDBスナップショット・カルーセルは、PDBのすべての既存のスナップショットのセットです。

MAX_PDB_SNAPSHOTSプロパティは、カルーセルで許可されるスナップショットの最大数を指定します。現在の設定は、CDB_PROPERTIESビューに表示されます。

次の図は、cdb1_pdb1のカルーセルを示しています。この例では、データベースはPDBスナップショットを毎日自動的に取得して、8個のスナップショットのセットを維持します。最初の8個のスナップショットが作成された後は、最新のスナップショットが作成されるたびに最も古いスナップショットと置き換えられます。たとえば、4月10日火曜日のスナップショットは4月2日月曜日のスナップショットと置き換えられ、4月11日水曜日のスナップショットは4月3日火曜日のスナップショットと置き換えられます。

図12-3 PDBスナップショット・カルーセル

図12-3の説明が続きます
「図12-3 PDBスナップショット・カルーセル」の説明

ファイル・システムでスパース・ファイルがサポートされている場合、カルーセル内の、最初のPDBスナップショットを除くすべてのPDBスナップショットはスパースとなります。ソースPDBは、読取り/書込みモードのままにできます。スパース・ファイルにより、カルーセルの記憶領域が大幅に削減されます。

関連項目:

各種エディションおよびサービスでサポートされる機能の詳細は、『Oracle Databaseライセンス情報ユーザー・マニュアル』を参照

PDBスナップショット・カルーセルのユーザー・インタフェース

SNAPSHOT MODE句を使用してスナップショットの作成を制御し、作成が手動、自動または無効かを決定します。

ALTER PLUGGABLE DATABASE … SNAPSHOT文

PDBのスナップショット・モードを設定するには、ALTER PLUGGABLE DATABASEまたはCREATE PLUGGABLE DATABASESNAPSHOT MODE句で次のいずれかの値を使用します。

  • MANUAL

    この句(デフォルト)は、PDBの手動スナップショットの作成を有効にします。必要に応じてスナップショットを作成するには、ALTER PLUGGABLE DATABASEまたはCREATE PLUGGABLE DATABASE文でSNAPSHOT snapshot_name句を指定します。

  • EVERY snapshot_interval [MINUTES|HOURS]

    この句は、時間間隔ごとのスナップショットの自動作成を有効にします。指定する間隔には次の制限があります。

    • 分の値は3000より小さくする必要があります。

    • 時間の値は2000より小さくする必要があります。

    データベースでは、各自動スナップショットにシステム生成の名前が割り当てられます。EVERYが指定されている場合は、PDBに対して手動スナップショットもサポートされていることに注意してください。

  • NONE

    この句は、PDBのスナップショット作成を無効にします。

関連項目:

MAX_PDB_SNAPSHOTSデータベース・プロパティ

PDBのスナップショットの最大数を設定するには、ALTER PLUGGABLE DATABASEまたはCREATE PLUGGABLE DATABASEMAX_PDB_SNAPSHOTSプロパティを指定します。プロパティのデフォルトは8で、これは最大値でもあります。スナップショットの最大許容数がすでに作成されている場合、データベースでは最も古いスナップショットが削除されます。CDB_PROPERTIESビューに、MAX_PDB_SNAPSHOTSの設定が表示されます。

関連項目:

ALTER PLUGGABLE DATABASE文の構文については、『Oracle Database SQL言語リファレンス』を参照してください

スナップショット関連のデータ・ディクショナリ・ビュー

次のデータ・ディクショナリ・ビューは、スナップショット情報を提供します。

  • DBA_PDB_SNAPSHOTSビューには、スナップショットに関するメタデータ(名前、作成SCN、作成時間およびファイル名を含む)が記録されます。

  • DBA_PDB_SNAPSHOTFILEビューには、PDBスナップショット内のファイルの名前とタイプがリストされます。このビューは、スナップショットがスパースの場合にのみ移入されます。

  • DBA_PDBSビューには、SNAPSHOT_MODEおよびSNAPSHOT_INTERVAL列があります。

関連項目:

DBA_PDB_SNAPSHOTSDBA_PDB_SNAPSHOTFILEおよびDBA_PDBSについて学習するには、『Oracle Databaseリファレンス』を参照

PDBスナップショット・カルーセル内のスナップショットの最大数の設定

PDBのPDBスナップショットの最大数を設定できます。

MAX_PDB_SNAPSHOTSデータベース・プロパティは、PDBスナップショット・カルーセルでの各PDBのスナップショットの最大数を設定します。デフォルトの最大値は8です。プロパティには8より大きい数値を設定できません。

前提条件

PDBが読取り/書込みモードでオープンしている必要があります。

PDBのPDBスナップショットの最大数を設定するには:

  1. SQL*Plusで、現在のコンテナが制限を設定するPDBであることを確認します。

  2. 必要に応じて、SET MAX_PDB_SNAPSHOTSプロパティの現在の設定に対してCDB_PROPERTIESを問い合せます。

  3. SET MAX_PDB_SNAPSHOTS句を指定して、ALTER PLUGGABLE DATABASEまたはALTER DATABASE文を実行します。

例12-1 PDBのPDBスナップショットの最大数の設定

次の問合せは、cdb1_pdb1のカルーセル内の最大値を示しています(出力例も示します)。

SET LINESIZE 150
COL ID FORMAT 99
COL PROPERTY_NAME FORMAT a17
COL PDB_NAME FORMAT a9
COL VALUE FORMAT a3
COL DESCRIPTION FORMAT a43

SELECT r.CON_ID AS id, p.PDB_NAME, PROPERTY_NAME, 
       PROPERTY_VALUE AS value, DESCRIPTION 
FROM   CDB_PROPERTIES r, CDB_PDBS p 
WHERE  r.CON_ID = p.CON_ID 
AND    PROPERTY_NAME LIKE 'MAX_PDB%' 
ORDER BY PROPERTY_NAME;

ID PDB_NAME  PROPERTY_NAME     VAL DESCRIPTION
-- --------- ----------------- --- ------------------------------------
 3 CDB1_PDB1 MAX_PDB_SNAPSHOTS 8   maximum number of snapshots for a PDB

次のSQL文は、現在のPDBのPDBスナップショットの最大数を7に設定します。

ALTER PLUGGABLE DATABASE SET MAX_PDB_SNAPSHOTS=7;

例12-2 PDBスナップショット・カルーセル内のすべてのスナップショットの削除

PDBスナップショット・カルーセル内のすべてのスナップショットを削除するには、次の文に示すように、MAX_PDB_SNAPSHOTSデータベース・プロパティを0 (ゼロ)に設定します。

ALTER PLUGGABLE DATABASE SET MAX_PDB_SNAPSHOTS=0;

この手法は、スナップショットごとにALTER PLUGGABLE DATABASE ... DROP SNAPSHOT snapshot_nameを実行するよりも高速です。

自動PDBスナップショットの構成

PDBを作成または変更する際にSNAPSHOT MODE EVERY句を使用して、自動スナップショットのPDBを構成します。

デフォルトでは、PDBは手動スナップショットに構成されています。

前提条件

ALTER PLUGGABLE DATABASE SNAPSHOT文の次の前提条件に注意してください。

  • CDBはローカルUNDOモードである必要があります。

  • 管理者はPDBを作成および削除する権限を持っている必要があります。

PDBの変更時に自動スナップショットを構成するには:

  1. SQL*Plusで、スナップショット・モードを構成するPDBに管理者としてログインしていることを確認します。

  2. 必要に応じて、DBA_PDBSを問い合せて、現在のスナップショット・モードを確認します。

  3. SNAPSHOT MODE EVERY interval句にMINUTESまたはHOURSを指定して、ALTER PLUGGABLE DATABASEを実行します。

PDBの作成時に自動スナップショットを構成するには:

  1. SQL*Plusで、CDBルートまたはアプリケーション・ルートに管理者としてログインしていることを確認します。

  2. 必要に応じて、DBA_PDBSを問い合せて、現在のスナップショット・モードを確認します。

  3. SNAPSHOT MODE EVERY interval句にMINUTESまたはHOURSを指定して、CREATE PLUGGABLE DATABASEを実行します。

例12-3 既存のPDBに対する毎日の自動スナップショットの構成

この例では、スナップショット・モードを変更するPDBにログインしていることを想定しています。データ・ディクショナリを問い合せて、現在、PDBがMANUALモードであることを確認します(出力例も示します)。

SELECT SNAPSHOT_MODE "S_MODE", SNAPSHOT_INTERVAL/60 "SNAP_INT_HRS" 
FROM   DBA_PDBS;

S_MODE SNAP_INT_HRS
------ ------------
MANUAL

スナップショット・モードを24時間ごとに変更します。

ALTER PLUGGABLE DATABASE SNAPSHOT MODE EVERY 24 HOURS;

自動モードへの変更を確認します。

SELECT SNAPSHOT_MODE "S_MODE", SNAPSHOT_INTERVAL/60 "SNAP_INT_HRS" 
FROM   DBA_PDBS;

S_MODE SNAP_INT_HRS
------ ------------
AUTO             24

例12-4 2時間ごとにスナップショットを取得するPDBの作成

この例では、CDBルートにログインしていることを想定しています。次の文は、cdb1_pdb1という名前の既存のPDBからのcdb1_pdb3を作成し、2時間ごとにスナップショットを自動的に取得するように構成します。

CREATE PLUGGABLE DATABASE cdb1_pdb3 FROM cdb1_pdb1
  FILE_NAME_CONVERT=('cdb1_pdb1','cdb1_pdb3')
  SNAPSHOT MODE EVERY 120 MINUTES;

PDBスナップショットの手動作成

PDBスナップショットを手動で作成するには、ALTER PLUGGABLE DATABASEまたはCREATE PLUGGABLE DATABASESNAPSHOT snapshot_name句を指定します。

前提条件

ALTER PLUGGABLE DATABASE SNAPSHOT文の次の前提条件に注意してください。

  • CDBはローカルUNDOモードである必要があります。次の問合せを使用すると、モードを確認できます。ローカルUNDOが有効な場合、この問合せはTRUEを返します。

    SELECT * FROM DATABASE_PROPERTIES WHERE PROPERTY_NAME='LOCAL_UNDO_ENABLED';
  • DBAは、PDBの作成および削除の権限を持っている必要があります。

  • スナップショットをスパースにする場合は、基礎となるストレージ・システムでスパース・ファイルがサポートされている必要があります。この場合、最初のスナップショットのみがフルになります。

PDBスナップショットを作成するには:

  1. SQL*Plusで、スナップショット・モードを作成するPDBに管理者としてログインしていることを確認します。

  2. 必要に応じて、DBA_PDBS.SNAPSHOT_MODEを問い合せて、スナップショットのモードがNONEに設定されていないことを確認します。

  3. SNAPSHOT句を指定してALTER PLUGGABLE DATABASE文を実行します。

例12-5 ユーザー指定の名前を使用したPDBスナップショットの作成

次のSQL文は、cdb1_pdb1の2つのPDBスナップショット(水曜日のデータ・ロードの前と後に1つずつ)を作成します。

ALTER PLUGGABLE DATABASE SNAPSHOT cdb1_pdb1_b4WLOAD;
-- data load
ALTER PLUGGABLE DATABASE SNAPSHOT cdb1_pdb1_afWLOAD;

DBA_PDB_SNAPSHOTSの次の問合せは、cdb1_pdb1という名前のPDBの2つのスナップショットの場所を示しています(出力例も示します)。

SET LINESIZE 150
COL CON_NAME FORMAT a9
COL ID FORMAT 99
COL SNAPSHOT_NAME FORMAT a17
COL SNAP_SCN FORMAT 9999999
COL FULL_SNAPSHOT_PATH FORMAT a61

SELECT CON_ID AS ID, CON_NAME, SNAPSHOT_NAME, 
       SNAPSHOT_SCN AS snap_scn, FULL_SNAPSHOT_PATH 
FROM   DBA_PDB_SNAPSHOTS
ORDER BY SNAP_SCN;

 ID SNAPSHOT_NAME     SNAP_SCN FULL_SNAPSHOT_PATH
--- ----------------- -------- -------------------------------------------------------------
  4 CDB1_PDB1_B4WLOAD  5056465 /ade/b/813544604/oracle/dbs/snapshots/pdb_2935056285/5056465/
  4 CDB1_PDB1_AFWLOAD  5056501 /ade/b/813544604/oracle/dbs/snapshots/pdb_2935056285/5056501/

PDBスナップショット名を指定しない場合、データベースでは一意の名前が生成されます。

例12-6 システム指定の名前を使用したPDBスナップショットの作成

次のSQL文は、スナップショットは作成されますが、名前が指定されていません。

ALTER PLUGGABLE DATABASE SNAPSHOT;

次の問合せ例は、データベースでSNAP_という接頭辞が付いた名前をスナップショットに割り当てることを示しています。

SET LINESIZE 150
COL CON_NAME FORMAT a9
COL ID FORMAT 99
COL SNAPSHOT_NAME FORMAT a26
COL SNAP_SCN FORMAT 9999999
COL FULL_SNAPSHOT_PATH FORMAT a61

SELECT CON_ID AS id, CON_NAME, SNAPSHOT_NAME, 
       SNAPSHOT_SCN AS snap_scn, FULL_SNAPSHOT_PATH 
FROM   DBA_PDB_SNAPSHOTS
ORDER BY SNAP_SCN;

 ID SNAPSHOT_NAME              SNAP_SCN FULL_SNAPSHOT_PATH
--- -------------------------- -------- -------------------------------------------------------------
  4 CDB1_PDB1_B4WLOAD           5056465 /ade/b/813544604/oracle/dbs/snapshots/pdb_2935056285/5056465/
  4 CDB1_PDB1_AFWLOAD           5056501 /ade/b/813544604/oracle/dbs/snapshots/pdb_2935056285/5056501/
  4 SNAP_2935056285_1031574118  5057389 /ade/b/813544604/oracle/dbs/snapshots/pdb_2935056285/5057389/

PDBスナップショットの削除

DROP SNAPSHOT句を指定したALTER PLUGGABLE DATABASE文を実行して、PDBスナップショットを削除できます。

PDBに基づくPDBスナップショットをすべて削除するには、PDBのMAX_PDB_SNAPSHOTSプロパティを0 (ゼロ)に設定します。

PDBスナップショットを削除するには:

  1. SQL*Plusで、現在のコンテナがPDBスナップショットを作成したPDBであることを確認します。

  2. DROP SNAPSHOT句を指定してALTER PLUGGABLE DATABASE文を実行します。

例12-7 PDBスナップショットの削除

次のSQL文は、sales_snapという名前のPDBスナップショットを削除します。

ALTER PLUGGABLE DATABASE DROP SNAPSHOT sales_snap;

PDBスナップショットのメタデータの表示

データ・ディクショナリ・ビューのDBA_PDB_SNAPSHOTSDBA_PDB_SNAPSHOTFILEでは、PDBスナップショットのメタデータが示されます。

DBA_PDB_SNAPSHOTSには、スナップショットに関する一般情報(名前、SCN、時間、パスなど)が含まれています。DBA_PDB_SNAPSHOTFILEでは、スナップショット内のすべてのファイルのパスとファイル名(データファイル、アーカイブREDOログ・ファイルおよびXMLファイル)が示されます。

ノート:

DBA_PDB_SNAPSHOTFILEでは、スパース・クローンPDBのみが示されます。スパース・クローンを作成するには、CLONEDB初期化パラメータをTRUEに設定する必要があります。

PDBスナップショットのメタデータを表示するには:

  1. SQL*Plusで、管理ユーザーとしてデータベースにログインします。

  2. DBA_PDB_SNAPSHOTSを問い合せます。

    たとえば、次の問合せを実行します(出力例も示します)。

    COL SNAPSHOT_NAME FORMAT a30
    SELECT SNAPSHOT_NAME, SNAPSHOT_SCN, SNAPSHOT_TIME FROM DBA_PDB_SNAPSHOTS;
    
    SNAPSHOT_NAME                  SNAPSHOT_SCN SNAPSHOT_TIME
    ------------------------------ ------------ -------------
    HRPDB_SNAP_F                        3678939    1536262569
    HRPDB_SNAP_S                        4954803     986473745
  3. DBA_PDB_SNAPSHOTFILEを問い合せます。

    たとえば、次の結合問合せを実行します(出力例も示します)。

    SET LINESIZE 120
    COL SNAPSHOT_NAME FORMAT a12
    COL SNAPSHOT_FILENAME FORMAT a54
    
    SELECT SNAPSHOT_NAME, SNAPSHOT_FILENAME, SNAPSHOT_FILETYPE AS TYPE
    FROM   DBA_PDB_SNAPSHOTS s, DBA_PDB_SNAPSHOTFILE f
    WHERE  s.SNAPSHOT_SCN=f.SNAPSHOT_SCN;
    
    SNAPSHOT_NAM SNAPSHOT_FILENAME                                      TYPE
    ------------ ------------------------------------------------------ ----
    HRPDB_SNAP_S /d1/snapshots/4954803/o1_mf_undo_1_fry1l5bq_.dbf       DATA
    HRPDB_SNAP_S /d1/snapshots/4954803/o1_mf_salestbs_fry19m6h_.dbf     DATA
    HRPDB_SNAP_S /d1/snapshots/4954803/o1_mf_sysext_fry19d1n_.dbf       DATA
    HRPDB_SNAP_S /d1/snapshots/4954803/o1_mf_sysaux_fry19d1m_.dbf       DATA
    HRPDB_SNAP_S /d1/snapshots/4954803/o1_mf_system_fry19d1k_.dbf       DATA
    HRPDB_SNAP_S /d1/snapshots/4954803/HRPDB.xml                         XML
    HRPDB_SNAP_S /d1/snapshots/4954803/archparlog_1_274_b87ca51e_985963
                 814.arc                                                ARCH

例12-8 完全PDBスナップショットのメタデータの問合せ

次の問合せは、2つのPDBスナップショットを示します。.pdb拡張子で示されるように、スナップショットはスパースではなくフルです。

SET LINESIZE 200
SET PAGESIZE 50000

COL ID FORMAT 99
COL CON_NAME FORMAT a7
COL SNAPSHOT_NAME FORMAT a25
COL SNAPSHOT_SCN FORMAT a7
COL FULL_SNAPSHOT_PATH FORMAT a65

SELECT CON_ID AS ID, CON_NAME, SNAPSHOT_NAME, 
       SNAPSHOT_SCN, FULL_SNAPSHOT_PATH 
FROM   DBA_PDB_SNAPSHOTS;

ID CON_NAM SNAPSHOT_NAME             SNAPSHO FULL_SNAPSHOT_PATH
-- ------- ------------------------- ------- -------------------------------
 5 HRPDB   SNAP_3286480866_994766895 3160319 /d1/snap_3286480866_3160319.pdb
 5 HRPDB   SNAP_3286480866_994767095 3165758 /d1/snap_3286480866_3165758.pdb

次のDBA_PDB_SNAPSHOTFILEの問合せでは、行が返されません。このビューはPDBスナップショットがスパースの場合にのみ移入されるためです。

SQL> SELECT COUNT(*) FROM DBA_PDB_SNAPSHOTFILE;

  COUNT(*)
----------
         0