1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

PDB スナップショットとPDBの再生

1
Posted at

はじめに

PDBスナップショットとは、PDBスナップショット・カルーセルによって取得されるPDBのPoint-in-Timeコピーです。
PDBスナップショット・カルーセルはオンプレミスのEEやSEなどのエディションでは提供されておらず、オンプレミスであれば Exadata、OCIであれば Base DB SEを除く環境で利用できます。
ライセンス情報
自動的に最大8までのスナップショットを取得できるため、検証や障害時のデータ確認や特定の時間帯(またはscn)のPDBを復元する事で集計処理なども可能です。
その操作・機能について少しですが探って行きます。

環境と手順について

環境は Oracle AI Database 26ai (23.26.1) for Linux で実施しますが、オンプレミス環境なので Exadata を使用します。Archive Log モードとして PDBのOpenまで確認します。

SQL> archive log list
データベース・ログ・モード     アーカイブ・モード
自動アーカイブ                 有効
アーカイブ先                    USE_DB_RECOVERY_FILE_DEST
最も古いオンライン・ログ順序   26
アーカイブする次のログ順序    26
現行のログ順序               24
 
SQL> show pdbs
 
    CON_ID CON_NAME                       OPEN MODE  RESTRICTED
---------- ------------------------------ ---------- ----------
         2 PDB$SEED                       READ ONLY  NO
         3 ORCL26PDB1                     READ WRITE NO
 
SELECT CURRENT_SCN FROM V$DATABASE;
CURRENT_SCN
-----------
    3455861
  • 手動による Snapshot の取得
SQL> ALTER PLUGGABLE DATABASE SNAPSHOT ORCL26PDB1_202602091041;
プラガブル・データベースが変更されました。
SQL> SELECT SNAPSHOT_NAME, SNAPSHOT_SCN, FULL_SNAPSHOT_PATH FROM DBA_PDB_SNAPSHOTS;

Q042-01.png

[oracle@node26 3460351]$ pwd
/u01/app/oracle/oradata/ORCL26/snapshots/pdb_2465249494/3460351
[oracle@node26 3460351]$ ls -la
合計 1308960
drwxr-x--- 2 oracle oinstall       143  2月  9 10:39 .
drwxr-x--- 3 oracle oinstall        21  2月  9 10:39 ..
-rw-r----- 1 oracle oinstall 838868992  2月  9 10:39 o1_mf_sysaux_nr0cg0x8_.dbf
-rw-r----- 1 oracle oinstall 387981312  2月  9 10:39 o1_mf_system_nr0cg0wq_.dbf
-rw-r----- 1 oracle oinstall 104865792  2月  9 10:39 o1_mf_undotbs1_nr0cg0x9_.dbf
-rw-r----- 1 oracle oinstall   8658944  2月  9 10:39 o1_mf_users_nr0cgpco_.dbf

取得された時点の scn ディレクトリに PDB snapshot を構成するデータファイルが格納されている事が確認でき、このスナップショットから scn:3460351 状態のPDBを再生する事ができます。

CREATE PLUGGABLE DATABASE ORCL26PDB1SPSCN3463542 FROM ORCL26PDB1 USING SNAPSHOT;

このスナップショット取得後にもPDBに対するデータの更新が行われるケースにおいては、以下のコマンドによりREDOログの適用を含むPDBの再生が可能になります。
まず、現時点での scn を確認します。

SELECT CURRENT_SCN FROM V$DATABASE;
CURRENT_SCN
-----------
    3463542

この例では、スナップショット取得時のscnは3460351ですが、3463542 までの変更履歴を適用しつつ、PDBを作成します。

CREATE PLUGGABLE DATABASE ORCL26PDB1SPSCN3463542 FROM ORCL26PDB1 USING SNAPSHOT AT SCN 3463542;
Pluggable database ORCL26PDB1SPSCN3463542は作成されました。

以下は alert.logの一部を抜粋したものです。

CREATE PLUGGABLE DATABASE ORCL26PDB1SPSCN3463542 FROM ORCL26PDB1 USING  SNAPSHOT AT SCN 3463542;
Pluggable database ORCL26PDB1SPSCN3463542は作成されました。
 
ORCL26PDB1(3):ORA-65040 signalled during: CREATE PLUGGABLE DATABASE ORCL26PDB1SPSCN FROM ORCL26PDB1 USING  SNAPSHOT AT SCN 3463542...
2026-02-09T11:01:52.998385+09:00
CREATE PLUGGABLE DATABASE ORCL26PDB1SPSCN FROM ORCL26PDB1 USING  SNAPSHOT AT SCN 3463542
2026-02-09T11:01:53.005197+09:00
**************************************************************
Undo Create of Pluggable Database ORCL26PDB1SPSCN with pdb id - 6.
**************************************************************
ORA-65012 signalled during: CREATE PLUGGABLE DATABASE ORCL26PDB1SPSCN FROM ORCL26PDB1 USING  SNAPSHOT AT SCN 3463542...
2026-02-09T11:02:08.349574+09:00
CREATE PLUGGABLE DATABASE ORCL26PDB1SPSCN FROM ORCL26PDB1 USING  SNAPSHOT AT SCN 3463542
2026-02-09T11:02:08.353457+09:00
**************************************************************
Undo Create of Pluggable Database ORCL26PDB1SPSCN with pdb id - 6.
**************************************************************
ORA-65012 signalled during: CREATE PLUGGABLE DATABASE ORCL26PDB1SPSCN FROM ORCL26PDB1 USING  SNAPSHOT AT SCN 3463542...
2026-02-09T11:02:32.772961+09:00
CREATE PLUGGABLE DATABASE ORCL26PDB1SPSCN3463542 FROM ORCL26PDB1 USING  SNAPSHOT AT SCN 3463542
2026-02-09T11:02:47.067776+09:00
****************************************************************
Pluggable Database ORCL26PDB1SPSCN3463542 with pdb id - 6 is created as UNUSABLE.
If any errors are encountered before the pdb is marked as NEW,
then the pdb must be dropped
local undo-1, localundoscn-0x000000000000012e
****************************************************************
ORCL26PDB1SPSCN3463542(6):Media Recovery Start
ORCL26PDB1SPSCN3463542(6):non_full_rcv: par=1
ORCL26PDB1SPSCN3463542(6): Started logmerger process under PDB 6
2026-02-09T11:02:47.131111+09:00
ORCL26PDB1SPSCN3463542(6):Recovery start scn 3460352, time 02/09/2026 10:39:20
2026-02-09T11:02:47.212372+09:00
ORCL26PDB1SPSCN3463542(6):Parallel Media Recovery started with 4 slaves
2026-02-09T11:02:47.340187+09:00
ORCL26PDB1SPSCN3463542(6):Recovery of Online Redo Log: Thread 1 Group 2 Seq 26 Reading mem 0
ORCL26PDB1SPSCN3463542(6):  Mem# 0: /u01/app/oracle/oradata/ORCL26/onlinelog/o1_mf_2_nr0c4t62_.log
ORCL26PDB1SPSCN3463542(6):  Mem# 1: /u01/app/oracle/fast_recovery_area/ORCL26/onlinelog/o1_mf_2_nr0c4tcd_.log
2026-02-09T11:02:48.007628+09:00
ORCL26PDB1SPSCN3463542(6):Incomplete Recovery applied until change 3463542 time 02/09/2026 11:01:36
2026-02-09T11:02:48.017155+09:00
ORCL26PDB1SPSCN3463542(6):.... (PID:565818): Media Recovery Complete [dbsdrv.c:15773]
ORCL26PDB1SPSCN3463542(6):Autotune of undo retention is turned on.
ORCL26PDB1SPSCN3463542(6):JIT: pid 565818 requesting stop
ORCL26PDB1SPSCN3463542(6):Buffer Cache flush started: 6
ORCL26PDB1SPSCN3463542(6):Buffer Cache flush finished: 6
Completed: CREATE PLUGGABLE DATABASE ORCL26PDB1SPSCN3463542 FROM ORCL26PDB1 USING  SNAPSHOT AT SCN 3463542

最後に

PDBスナップショット・カルーセルは本来であれば自動的に最大8つまでPDBスナップショットを作成し、データに依存した検証やデータ復元が主たる目的になると思います。さらに今回の様に scn や タイムスタンプを意識したPDBのクローン作成が可能なのでリフレッシュ可能クローンPDBのような最新の状態もできますし、PDBのフラッシュバック・データベースのような使い方も可能だと思います。(PDBスナップショットとArchive Log保持に依存した制約はありますが)

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?