技術ブログ
技術ブログ
目次
つい「カッと」なって(全部俺)某Oracle書籍を25日後に脱稿するXX歳の Advent Calendar 2021を作ってしまいました。
オラクルマスター教科書 Bronze DBA Oracle Database Fundamentals、 オラクルマスター教科書 Silver DBA Oracle Database Administration Iに続く「某Oracle書籍」を執筆中のOracle ACE 渡部が、12月25日のドラフト脱稿目指して1日1記事頑張って投稿してゆきたいと思います!
「某Oracle書籍」執筆中に実施した下調べの内容や、「某Oracle書籍」のターゲットを超える内容、内容的に関連するセミナー資料の抜粋などを記載する予定です。
2021年12月時点で「某Oracle書籍」の発売時期は未定です。もう少々お待ちを。
万が一、関係者から怒られたら途中でやめるかも(たぶん大丈夫だと思うのだけど)
執筆中の「某Oracle書籍」の記載内容と、一連の投稿の記載内容は異なります
「某Oracle書籍」の記載と、一連の投稿は品質が全く異なります 。
オラクルマスター教科書 Silver DBA Oracle Database Administration I https://www.amazon.co.jp/dp/4798166359/ (2021年5月28日 発売)
オラクルマスター教科書 Bronze DBA Oracle Database Fundamentals https://www.amazon.co.jp/dp/4798166367/ (2020年9月17日 発売)
2022/3/25 追記
12月中の脱稿には失敗してしまいましたが、その後鋭意執筆を進め、2022年5月27日に「オラクルマスター教科書 Gold DBA Oracle Database Administration II」を販売開始します。詳細は以下をご覧ください。
ORACLE MASTER Bronze DBA 2019試験対策本の発売日が決定しました
執筆中の「某Oracle書籍」の対象範囲には、マルチテナント環境におけるPDBの作成が含まれます。
マルチテナント環境におけるPDBの作成については、
11/19 #dbts2021 Oracleマルチテナント再入門セミナーのお知らせ
で「Oracle経験者にとっては」見通し良く理解しやすいように整理・説明を試みたので、これを転記しておきます。
最もシンプルな方法として、空のPDBを作成する方法を実行してみます。
というわけでCREATE PLUGGABLE DATABASE を実行すると・・・ エラーになります。
SQL> CREATE PLUGGABLE DATABASE pdb9
2 ADMIN USER pdb9admin IDENTIFIED BY Password123;
ADMIN USER pdb9admin IDENTIFIED BY Password123
*
行2でエラーが発生しました。:
ORA-65016: FILE_NAME_CONVERTを指定する必要があります
PDBの実体は、表領域を構成するデータファイルです。 PDBの作成時には、データファイルのファイルパスを以下の2つのいずれかの考え方で指定する必要があります。
これを踏まえると、上記エラーは以下の理由で発生していたことがわかります。
上記の通り、PDBの作成時のデータファイルのファイルパス指定には非OMFとOMFの2つの考え方があります。まず、非OMFでデータファイルのファイルパスを指定してみます。具体的には、CREATE PLUGGABLE DATABASE に FILE_NAME_CONVERT句を指定してみます。
で、FILE_NAME_CONVERT句を指定するためには、「元PDBと新PDBの間のファイル名変換ルール」を指定する必要がありますから、まずは「元PDB」であるところのPDBシードのデータファイル名を確認します。
SQL> ALTER SESSION SET CONTAINER=PDB$SEED;
セッションが変更されました。
SQL>
SQL> SELECT file_name FROM dba_data_files;
FILE_NAME
--------------------------------------------------------------------------------
/u01/app/oracle/oradata/CDB/pdbseed/system01.dbf
/u01/app/oracle/oradata/CDB/pdbseed/sysaux01.dbf
/u01/app/oracle/oradata/CDB/pdbseed/undotbs01.dbf
これを元に「元PDBと新PDBの間のファイル名変換ルール」を決めるわけですが、 これは要件に応じて適宜決めてOKな形になります。
ここでは、元PDBと新PDBのファイル配置を似たような形にするとして、以下の変換ルールおよび、ファイルパスにすることとします。
/u01/app/oracle/oradata/CDB/pdbseed/system01.dbf
/u01/app/oracle/oradata/CDB/pdbseed/sysaux01.dbf
/u01/app/oracle/oradata/CDB/pdbseed/undotbs01.dbf
│
│変換ルール '/pdbseed/' → '/pdb9/'
↓
/u01/app/oracle/oradata/CDB/pdb9/system01.dbf
/u01/app/oracle/oradata/CDB/pdb9/sysaux01.dbf
/u01/app/oracle/oradata/CDB/pdb9/undotbs01.dbf
この変換ルールをFILE_NAME_CONVERT句 に指定して、CREATE PLUGGABLE DATABASE文を実行します。
SQL> CREATE PLUGGABLE DATABASE pdb9
2 ADMIN USER pdb9admin IDENTIFIED BY Password123
3 FILE_NAME_CONVERT=('/pdbseed/', '/pdb9/');
プラガブル・データベースが作成されました。
SQL> ALTER PLUGGABLE DATABASE pdb9 OPEN;
プラガブル・データベースが変更されました。
SQL> connect system/Password123@localhost:1521/pdb9
接続されました。
SQL> SELECT file_name FROM DBA_DATA_FILES;
FILE_NAME
--------------------------------------------------------------------------------
/u01/app/oracle/oradata/CDB/pdb9/system01.dbf
/u01/app/oracle/oradata/CDB/pdb9/sysaux01.dbf
/u01/app/oracle/oradata/CDB/pdb9/undotbs01.dbf
SQL>
想定通りのデータファイル名でPDBが作成されました。
次にOMFでPDBを作成してみます。
おさらいですが、OMFとはOracleデータベースの構成ファイルの管理を「Oracle任せ」にすることです。具体的には…
OMFでPDBを作成する方法にはいくつかありますが、ここではDB_CREATE_FILE_DEST初期化パラメータを使います。
SQL> ALTER SESSION SET DB_CREATE_FILE_DEST ='/u01/app/oracle/oradata';
セッションが変更されました。
SQL> CREATE PLUGGABLE DATABASE pdb8
2 ADMIN USER pdb8admin IDENTIFIED BY Password123;
プラガブル・データベースが作成されました。
SQL> ALTER PLUGGABLE DATABASE pdb8 OPEN;
プラガブル・データベースが変更されました。
SQL> connect system/Password123@localhost:1521/pdb8
接続されました。
SQL> SELECT file_name FROM DBA_DATA_FILES;
FILE_NAME
------------------------------------------------------------------------------------------------------------------------
/u01/app/oracle/oradata/CDB/CFEEA753BB111F37E0530C38A8C01647/datafile/o1_mf_system_jr6lw92m_.dbf
/u01/app/oracle/oradata/CDB/CFEEA753BB111F37E0530C38A8C01647/datafile/o1_mf_sysaux_jr6lw92n_.dbf
/u01/app/oracle/oradata/CDB/CFEEA753BB111F37E0530C38A8C01647/datafile/o1_mf_undotbs1_jr6lw92n_.dbf
SQL>
これまで、非OMFとOMFでのデータファイルのファイルパス指定方法を紹介しましたが、 指定方法は全部で4つあります。
の2×2で4パターンです。
複数の指定パターンを併用する(同時に指定する)ことは実務上考えにくいですが、一応同時に指定した場合の優先度も定義されています。
ということで2日目に続く・・・
2022/3/25 追記
12月中の脱稿には失敗してしまいましたが、その後鋭意執筆を進め、2022年5月27日に「オラクルマスター教科書 Gold DBA Oracle Database Administration II」を販売開始します。詳細は以下をご覧ください。
ORACLE MASTER Bronze DBA 2019試験対策本の発売日が決定しました