9.2 Oracle Application Express (APEX)ユーザーのデータのエクスポートおよびインポート

この項では、Oracle Application Express (APEX)ユーザーがOracle Database XE 11.2とXE 18cの間でデータをエクスポートおよびインポートする方法について説明します。

データのエクスポート

  1. 11.2 XEデータベースのOracle Application Expressを、データベース18cでサポートされている最小バージョンであるAPEX 5.1.4以上にアップグレードしていない場合はアップグレードします。APEXディストリビューションは、http://www.oracle.com/technetwork/developer-tools/apex/downloads/index.htmlでダウンロードできます。

    関連項目:

    Oracle Database Express Edition内のOracle Application Express (APEX)のアップグレードの詳細は、Application Expressインストレーション・ガイドを参照してください
  2. データを11.2 XEデータベースからエクスポートするには、次の手順を実行します。

    1. ローカル・ファイル・システムにDUMP_DIRディレクトリ・オブジェクトのディレクトリを作成します。

    2. SYSDBA権限を使用してユーザーSYSとして11.2 XEデータベースに接続します。

    3. ディレクトリ・オブジェクトDUMP_DIRを作成し、ディレクトリに対するREADおよびWRITE権限をSYSTEMユーザーに付与します。

      sqlplus "/ AS SYSDBA"
      SQL> CREATE DIRECTORY DUMP_DIR AS '/dump_folder';
      SQL> GRANT READ, WRITE ON DIRECTORY DUMP_DIR TO SYSTEM;
      
    4. DUMP_DIRディレクトリの11.2 XEデータベースからデータをエクスポートします。

      expdp system/system_password full=Y directory=DUMP_DIR dumpfile=DB11G.dmp logfile=expdpDB11G.log
      
  3. Oracle Database XE 18cのインストールが同じシステムで計画されている場合は、Oracle Database XE 11.2をアンインストールします。詳細は、Oracle Database XEのアンインストールを参照してください

  4. Oracle Database XE 18cをインストールします。

データのインポート

  1. データを18c XEデータベースにインポートするには、次の手順を実行します。

    1. SYSDBA権限を使用してユーザーSYSとして18c XEデータベースに接続します。

    2. ディレクトリ・オブジェクトDUMP_DIRを作成し、ディレクトリに対するREADおよびWRITE権限をSYSTEMユーザーに付与します。

      sqlplus / AS SYSDBA
      SQL> ALTER SESSION SET CONTAINER=XEPDB1;
      SQL> CREATE DIRECTORY DUMP_DIR AS '/dump_folder';
      SQL> GRANT READ, WRITE ON DIRECTORY DUMP_DIR TO SYSTEM;
      
    3. データをダンプ・フォルダから18c XEデータベースにインポートします。

      impdp system/system_password@localhost/xepdb1 full=Y REMAP_DIRECTORY='/u01/app/oracle/oradata/XE/':'/opt/oracle/oradata/XE/XEPDB1' directory=DUMP_DIR dumpfile=DB11G.dmp logfile=impdpDB11G.log
      

      ディレクトリの再マッピングは、異なるディレクトリ・ファイルのネーミング規則を使用する場合に必要です。REMAP_DIRECTORYパラメータの最初の引数は、11.2 XEデータ・ファイルの場所(ソース)で、2番目の引数は18c XEデータ・ファイルの場所(ターゲット)です。

      impdp REMAP_DIRECTORYパラメータ構文の詳細は、Oracle Databaseユーティリティを参照してください

    次のエラーは無視できます。
    • ORA-39083: オブジェクト型TABLESPACE:"SYSAUX"の作成がエラーで失敗しました

    • ORA-31685: 権限が不十分なため、オブジェクト型USER:"SYS"が失敗しました。

    • ORA-39083: オブジェクト型PROCACT_SYSTEMの作成がエラーで失敗しました

    • ORA-01917: ユーザーまたはロール'APEX_040000'は存在しません

    • ORA-31684 "すでに存在します"エラー

  2. データベース・インポート後スクリプトを実行して、Oracle Application Express (APEX)を構成します。
    1. https://www.oracle.com/technetwork/developer-tools/apex/application-express/apxfix-5137274.zipをダウンロードし、サーバーにapfix.sqlスクリプトを解凍します。

    2. 11.2 XEデータベースでAPEXをアップグレードするために使用したAPEXソースの最上位レベルのディレクトリに、ファイルapxfix.sqlをコピーします。作業ディレクトリをそのソースに変更します。

    3. APEXソフトウェアを所有するスキーマ名を渡すapxfix.sqlを実行します。たとえば、データをエクスポートする前に11.2 XEをAPEX 5.1.4にアップグレードした場合、引数としてスキーマ名APEX_050100を指定します。

      sqlplus / AS SYSDBA
      SQL> ALTER SESSION SET CONTAINER=XEPDB1;
      SQL> @apxfix.sql APEX_050100
      SQL> EXIT
      
    4. 埋込みPL/SQLゲートウェイを構成します。Oracle Application Express (APEX)ソフトウェアにファイル・システム・パスを渡すapex_epg_config.sqlスクリプトを実行します。たとえば、APEXソフトウェアを/tmpに解凍した場合、次のようになります。

      sqlplus / AS SYSDBA
      SQL> ALTER SESSION SET CONTAINER=XEPDB1;
      SQL> @apex_epg_config.sql /tmp
      

    5. 埋込みPL/SQLゲートウェイのHTTPポートを設定します。たとえば、HTTPポートを8080に設定するには、次のようにします。

      SQL> ALTER SESSION SET CONTAINER=XEPDB1;
      SQL> EXEC XDB.DBMS_XDB.SETHTTPPORT(8080);
      SQL> COMMIT;
    6. CDB$ROOTに接続し、ANONYMOUSユーザーをロック解除します。

      SQL> ALTER SESSION SET CONTAINER=CDB$ROOT;
      SQL> ALTER USER ANONYMOUS ACCOUNT UNLOCK;
      SQL> EXIT