0
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とREDOの詳細について

Posted at

はじめに

CDBにおいて物理的なデータフ・ァイルはCDB全体(CDB$ROOT配下)で共有されるものと、PDBに依存するものに分かれます。前者は制御ファイルやオンラインREDOログやアーカイブファイルなど、後者はPDB上のユーザデータやそれに伴うディクショナリなどです。
21c 以降では、PDB単位での Data Guard が構成されるなど、PDBを軸に機能の改良・改善がなされている様に見受けられるので、特にオンラインREDOの内容を確認してみます。
Q13-01.png

PDBのUIDについて確認

今回の環境はOracle Database 19c Version 19.25.0.0.0 で実施しています。
Q13-02.png

  • V$CONTAINERS から PDBのUID(CON_UID)を確認
SYS@ORCL19C> show pdbs

    CON_ID CON_NAME                       OPEN MODE  RESTRICTED
---------- ------------------------------ ---------- ----------
         2 PDB$SEED                       READ ONLY  NO
         3 PDB                            READ WRITE NO

SYS@ORCL19C> SELECT NAME, CON_ID, DBID, CON_UID, GUID FROM V$CONTAINERS;
NAME         CON_ID       DBID    CON_UID GUID
-------- ---------- ---------- ---------- --------------------------------
CDB$ROOT          1 1668855281          1    86B637B62FDF7A65E053F706E80A27CA
PDB$SEED          2  847153043  847153043    2BB9F24A3E6B3E3EE0635F97B90AEC22
PDB               3 2912448633 2912448633👈 2BBA3AE39C32589EE0635F97B90AB301
  • PDBに対し、DMLを実行(今回は SCOTT スキーマおよびサンプルオブジェクトを作成)
  • CDB$ROOTからオンラインREDOログのダンプを生成する
SYS@ORCL19C> ALTER SYSTEM DUMP REDO

ダンプの結果はトレース・ファイルに出力されるため、その一部でCON_UIDを確認する

REDO RECORD - Thread:1 RBA: 0x00001b.0001d15e.010c LEN: 0x0064 VLD: 0x01 CON_UID: 1
SCN: 0x0000000000356415 SUBSCN:  2 01/27/2025 00:55:35
CHANGE #1 CON_ID:1 TYP:0 CLS:8 AFN:3 DBA:0x00c1ae28 OBJ:75684 SCN:0x00000000003562b7 SEQ:1 OP:13.22 ENC:0 RBL:0 FLG:0x0000
Redo on Level1 Bitmap Block
Redo to mark block free
offset: 4 length:1 xidslot:0 state:3
ncmt:0
Commit Slot list
locking transaction:  0x0000.000.00000000

…… (中略)

REDO RECORD - Thread:1 RBA: 0x00001b.0004c59e.0038 LEN: 0x0134 VLD: 0x01 CON_UID: 2912448633👈
SCN: 0x00000000003607f1 SUBSCN: 32 01/27/2025 12:53:41
CHANGE #1 CON_ID:3 TYP:0 CLS:32 AFN:11 DBA:0x02403ee8 OBJ:4294967295 SCN:0x00000000003607f1 SEQ:31 OP:5.1 ENC:0 RBL:0 FLG:0x0000
ktudb redo: siz: 100 spc: 1270 flg: 0x0022 seq: 0x0136 rec: 0x49
            xid:  0x0008.014.000003c6
ktubu redo: slt: 20 wrp: 966 flg: 0x0000 prev dba:  0x00000000 rci: 72 opc: 10.22 [objn: 718 objd: 718 tsn: 0]
[Undo type  ] Regular undo  [User undo done   ]  No  [Last buffer split]  No

1つのREDOログに CDB$ROOTおよび PDBのそれぞれが変更履歴を書き込んでいる事が確認できた。

最後に

マルチテナント・アーキテクチャは12cから導入され、21cからはCDB構成のみがサポート対象となりました。従来の non-CDB構成を可能な限り継承する目的でシングル・テナント(1つのPDBのみ)で実装・運用されるケースも複数の(多いと100を超える) PDBを実装するケースもあるようです。
オンラインREDOやアーカイブ・ログはCDB (CDB$ROOT)の管理下というイメージが強かったのですが、複数のPDBから共有されている感覚に変わりつつあるようです。

0
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
0
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?