Oracle University 講師が ORACLE MASTER 取得を目指している方に向けて試験トピックを解説するブログ連載講座。「ORACLE MASTER Gold DBA 2019」資格取得に向けた試験トピックについて解説します。

————————————————- 

本連載ではORACLE MASTER Gold DBA 2019(1Z0-083-JPN: Oracle Database AdministrationⅡ試験)の主要分野であるマルチテナント・アーキテクチャを中心にご紹介します。今回は「プラガブル・データベース(PDB)の作成」についてのサンプル問題を解きながら詳しく解説していきます。

それではサンプル問題を確認していきましょう。

ローカルUNDOモードおよびARCHIVELOGモードのコンテナデータベース

CDB1のルートコンテナに接続して、show コマンドを実行しました。

SQL> show parameter db_create_file_dest

NAME                            TYPE   VALUE
———————– ——- ——————————-
db_create_file_dest    string    /u01/app/oracle/oradata/pdb2

SQL> show pdbs

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

新しいプラガブル・データベースPDB2をPDB1からクローニングで作成しようと考えています。

PDB1のデータファイルは ‘/u02/app/oracle/oradata/pdb1’ 配下にあります。

以下のコマンドを実行しました。

SQL> create pluggable database pdb2 from pdb1 file_name_convert=(‘pdb1′,’pdb2’);

実行した結果について正しい内容はどれになりますか(2つ選択してください)。

尚、db_create_file_destの指定先のディレクトリは正しく作成されているものとします。

  1. 初期化パラメータにdb_create_file_destが設定されている場合、file_name_convertは指定できないのでエラーになる。
  2. 構築したPDB2のデータファイルは db_create_file_destの指定先に作成される。
  3. 構築したPDB2のデータファイルはOMF管理で作成される。
  4. 構築したPDB2のデータファイルは /u02/app/oracle/oradata/pdb2 の先に作成される。
  5. PDB2の作成が完了した直後は、PDB2はMOUNT状態である

 

(解説)

それでは解説していきましょう。今回の問題はプラガブル・データベースを新しく作成する内容に関連した問題となります。まずは新規プラガブル・データベースの基本的な作成方法を確認しておきましょう。

以下の4つの方法は基本としておさえておく必要があります。

  • CDBシードから新規PDB作成
  • 既存PDBからのクローニング
  • PDBのアンプラグ&プラグ
  • 非CDB環境をPDBとしてCDBにプラグ

それぞれの方法のイメージ図が以下になりますので参考にしてください。

 

他にも「PDBのリモート・クローニング」や「停止時間ほぼゼロのPDB再配置」といった方法もありますが、応用的な操作となりますので今回は説明を割愛します。まずは基本をしっかり確認していきましょう。

 

さて、今回の問題は上図の「② 既存のPDBコピー(クローニング)」を実施したという内容になりますが、いずれのPDBの作成方法においても、新しいPDBで使用するファイルをどこに配置するか?の指定が必要となります。PDBが使用するファイルの場所を指定する方法は以下の4つがあります。

上2つの「FILE_NAME_CONVERT」と「CREATE_FILE_DEST」はCREATE PLUGABBLE DATABASE文を実行する際に指定する句となります。両者の違いについては優先順位とOracle Managed Files(OMF)を使用するかどうかという点になります。今回の問題文では「FILE_NAME_CONVERT」が使用されていますので、こちらの句の構文を確認しておきましょう。

 

問題文では file_name_convert=(‘pdb1′,’pdb2’) としていますのでPDB1のファイル配置先のパスである「/u02/app/oracle/oradata/pdb1」のpdb1ディレクトリがpdb2ディレクトリに置換されます。つまりPDB2のファイル配置先は「/u02/app/oracle/oradata/pdb2」になるということですね。尚、FILE_NAME_CONVERTの指定方法は絶対パスで記載しても問題ありません。

 

残り2つの「DB_CREATE_FILE_DEST」と「PDB_FILE_NAME_CONVERT」は、どちらも初期化パラメータになります。事前に設定をしておき、CREATE PLUGGABLE DATABASE文を実行すると初期化パラメータの指摘先にファイルが配置されるということになります。こちらも違いは優先順位とOracle Managed Files(OMF)を使用するかどうかという点になります。

4つの指定方法を確認しましたが、句または初期化パラメータには優先度があるため、今回の問題文にあるように初期化パラメータに設定があり、かつSQL文の句でも指定した場合は、優先順位にしたがってファイルの配置先が有効になるということです。

 

ここまで確認ができましたら、正解を選ぶことができますので選択肢を見ていきましょう。

選択肢1は誤りです。db_create_file_dest初期化パラメータの設定よりfile_name_convert句の方が優先度が高いのでfile_name_convert句の指定が有効となります。エラーになることはありません。

選択肢2も優先度を確認してもらえれば分かりますね。誤りの選択肢になります。

選択肢3ですが、file_name_convert句はOMF管理になりませんので誤りです。

選択肢4は正しい選択肢になります。先の文章で解説させていただいたとおり「/u02/app/oracle/oradata/pdb2」の指定先にファイルは配置されます。

選択肢5は正しい選択肢です。PDBの作成直後はMOUNT状態になるので必要に応じてOPEN処理を別途実施する必要があります。

以上を踏まえまして正解は 4、5 になります。

最後にもう1つ追加で説明をしておきましょう。

問題文の最初のところに「ローカルUNDOモードおよびARCHIVELOGモードのコンテナデータベースCDB1の・・」という文言が記載されていますが、クローニングを行う際のソースPDBのオープン状態に関係してきます。ローカルUNDOモードかつARCHIVELOGモードの場合、ソースPDBは読取り/書込み(READ WRITE)モードでクローニング操作を行うことができます。この手法のことをホット・クローニングと言います。

ローカルUNDOモードについては「第1回:マルチテナント・アーキテクチャの基礎」で説明していますのでご参考にしてください。ホット・クローニングが使用できない場合は、ソースPDBは読取り専用(READ ONLY)モードに変更してからクローニング操作を行う必要があります。

今回は基本的なプラガブル・データベースの作成に関する内容の問題を紹介しました。是非実機を使用して実際にプラガブル・データベースを作成してみてください。実機操作を行うことで理解を深めるとともに知識の定着を確実なものに出来るかと思います。以下のマニュアルの箇所などが参考になると思いますのでご確認ください。

Oracle Multitenant 管理者ガイド 19c
第Ⅲ部 PDBおよびアプリケーション・コンテナの作成および削除
第Ⅳ部 マルチテナント環境の管理

今回の講義はこれまでとします。お疲れ様でした。

————————————————-

【Oracle University講師によるORACLE MASTER Gold DBA 2019 試験トピック解説講座】トピック一覧

————————————————

その他の ORACLE MASTER 試験トピック解説講座シリーズ:

【Oracle University 講師による ORACLE MASTER Silver SQL 2019 試験トピック解説講座】-トピック一覧-

————————————————-