株式会社コーソル

コーソルDatabaseエンジニアのブログ

技術ブログ

PDB Plug時のSOURCE_FILE_NAME_CONVERT句 – (全部俺)某Oracle書籍を25日後に脱稿するXX歳のAdvent Calendar 2021 3日目

Oracle ACEの渡部です。

この記事は(全部俺)某Oracle書籍を25日後に脱稿するXX歳の Advent Calendar 2021の3日目の記事です。2日目の記事はPDBのUnPlugとPlug - (全部俺)某Oracle書籍を25日後に脱稿するXX歳のAdvent Calendar 2021 2日目でした。

つい「カッと」なって(全部俺)某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書籍」の記載と、一連の投稿は品質が全く異なります

    • 「某Oracle書籍」の記載は、十分に推敲を重ねた、図や表を用いた丁寧なものです。一方、一連の投稿はメモ書きの延長のレベルで、概して推敲が不十分で図や表はあまり使っていません。
    • 「某Oracle書籍」の記載は、先頭から読んでいけばスンナリ理解できるように工夫された完結性・完備性が高いものです。一方、一連の投稿は特定の観点やトピックにのみ関連するものです。内容を理解するには前提知識が求められます。

[宣伝] これまでに渡部が執筆した書籍の一覧

2022/3/25 追記

12月中の脱稿には失敗してしまいましたが、その後鋭意執筆を進め、2022年5月27日に「オラクルマスター教科書 Gold DBA Oracle Database Administration II」を販売開始します。詳細は以下をご覧ください。

ORACLE MASTER Bronze DBA 2019試験対策本の発売日が決定しました

PDB接続時のSOURCE_FILE_NAME_CONVERT

今日は軽めに。

SOURCE_FILE_NAME_CONVERT句は、XMLファイルのデータファイル指定と実際のデータファイルの位置が異なる場合に指定します。

XMLファイルのデータファイル指定と実際のデータファイルの位置が異なる、以下の状況を考えます。

[oracle@ol78n12 ~]$ grep path /var/tmp/pdb1.xml
      <path>/u01/app/oracle/oradata/CDB/pdb1/system01.dbf</path>
      <path>/u01/app/oracle/oradata/CDB/pdb1/sysaux01.dbf</path>
      <path>/u01/app/oracle/oradata/CDB/pdb1/undotbs01.dbf</path>
      <path>/u01/app/oracle/oradata/CDB/pdb1/temp01.dbf</path>
      <path>/u01/app/oracle/oradata/CDB/pdb1/users01.dbf</path>
[oracle@ol78n12 ~]$ ls -1 /var/tmp/*.dbf
/var/tmp/sysaux01.dbf
/var/tmp/system01.dbf
/var/tmp/undotbs01.dbf
/var/tmp/users01.dbf

この状態で、SOURCE_FILE_NAME_CONVERT句を指定せずにPDBの接続を試みると、エラーで失敗します。

SQL> CREATE PLUGGABLE DATABASE pdb1 USING '/var/tmp/pdb1.xml' NOCOPY;
CREATE PLUGGABLE DATABASE pdb1 USING '/var/tmp/pdb1.xml' NOCOPY
*
行1でエラーが発生しました。:
ORA-19505:
ファイル"/u01/app/oracle/oradata/CDB/pdb1/system01.dbf"の識別に失敗しました。 ORA-27037:
ファイル・ステータスを取得できません。 Linux-x86_64 Error:
2: No such file or directory
Additional information: 7

XMLファイルのデータファイル指定と実際のデータファイルの位置を変換するルールをSOURCE_FILE_NAME_CONVERT句に指定すると、接続に成功します。

SQL> CREATE PLUGGABLE DATABASE pdb1 USING '/var/tmp/pdb1.xml' NOCOPY
  2    SOURCE_FILE_NAME_CONVERT=('/u01/app/oracle/oradata/CDB/pdb1/', '/var/tmp/');

プラガブル・データベースが作成されました。

SQL> ALTER PLUGGABLE DATABASE pdb1 OPEN;

プラガブル・データベースが変更されました。

SQL> CONNECT system/Password123@localhost:1521/pdb1
接続されました。
SQL> SELECT file_name FROM DBA_DATA_FILES;

FILE_NAME
--------------------------------------------------------------------------------
/var/tmp/system01.dbf
/var/tmp/sysaux01.dbf
/var/tmp/undotbs01.dbf
/var/tmp/users01.dbf

SQL>

ということで、4日目に続く・・・

2022/3/25 追記

12月中の脱稿には失敗してしまいましたが、その後鋭意執筆を進め、2022年5月27日に「オラクルマスター教科書 Gold DBA Oracle Database Administration II」を販売開始します。詳細は以下をご覧ください。

ORACLE MASTER Bronze DBA 2019試験対策本の発売日が決定しました

プロフィール

On7tWW6m1Ul4

渡部 亮太

・Oracle ACE
・AWS Certified Solutions Architect - Associate
・ORACLE MASTER Platinum Oracle Database 11g, 12c 他多数

カテゴリー

アーカイブ