[Database] Why does a PDB require an upgrade?

原文はこちら。
https://blogs.oracle.com/UPGRADE/entry/why_does_a_pdb_require

version Aから外し、version Bへつなぎ直した時に、Pluggable Database (PDB) をアップグレード(もしくはダウングレード)しなければならない理由は何なのでしょう。
この質問は、Royと共にワークショップ中にUpgrades and Oracle Multitenantを説明する際によくいただく質問の一つです。
ドキュメントを見てみると、以下のような記述があります。
Oracle® Database概要 12cリリース1 (12.1)
マルチテナント・アーキテクチャの概要
CDBのデータ・ディクショナリ・アーキテクチャ
http://docs.oracle.com/cd/E57425_01/121/CNCPT/cdblogic.htm#CIHIBAIE
Oracle® Database Concepts 12c Release 1 (12.1)
Overview of the Multitenant Architecture
Data Dictionary Architecture in a CDB
http://docs.oracle.com/database/121/CNCPT/cdblogic.htm#CIHIBAIE


しかし残念ながらこれは全てのオブジェクトに対して完全にあてはまるとは言えません。
OBJ$のような基本ディクショナリ構造の簡単なクエリを実行すると、PDBが自身でデータディクショナリを持っていることが容易にわかります。実際にPDBとのみ紐付いているものがあります。例えば、DBA_OBJECTSSHARING列です。メタデータ・リンクの場合、DBA_OBJECTSCDB$ROOTにあるDBA_OBJECTSの親と情報を交換することを示しています。しかし、これはPDBが空のメタオブジェクトである、ということを意味するわけではありません。PDBには実際に表が存在しますし、領域を割り当てています。ご自身で確かめてみてください。他のオブジェクトが実際に領域を割り当てているように、PDB内のOBJ$に実際に同じ属性があることがわかるでしょう。しかし、PDBやCDB$ROOTにもセグメントを有しています。もちろんそのオブジェクト定義はPDBにも存在します。
  • CDB$ROOT
    OBJ$ in CDB$ROOT
  • PDB 
    OBJ$ in PDB
ということで、回答はシンプルです。
Pluggable Database (PDB) 自身がデータディクショナリを有しているので、異なるバージョン間を移送する場合、PDBのアップグレード(もしくはダウングレード)が必須です。自動的にアップグレードされることはありません。

0 件のコメント:

コメントを投稿