9.2 Oracle Application Express (APEX)ユーザーのデータのエクスポートおよびインポート
この項では、Oracle Application Express (APEX)ユーザーがOracle Database XE 11.2とXE 18cの間でデータをエクスポートおよびインポートする方法について説明します。
データのエクスポート
-
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インストレーション・ガイドを参照してください -
データを11.2 XEデータベースからエクスポートするには、次の手順を実行します。
-
ローカル・ファイル・システムに
DUMP_DIR
ディレクトリ・オブジェクトのディレクトリを作成します。 -
SYSDBA
権限を使用してユーザーSYS
として11.2 XEデータベースに接続します。 -
ディレクトリ・オブジェクト
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;
-
DUMP_DIR
ディレクトリの11.2 XEデータベースからデータをエクスポートします。expdp system/system_password full=Y directory=DUMP_DIR dumpfile=DB11G.dmp logfile=expdpDB11G.log
-
-
Oracle Database XE 18cのインストールが同じシステムで計画されている場合は、Oracle Database XE 11.2をアンインストールします。詳細は、Oracle Database XEのアンインストールを参照してください
-
Oracle Database XE 18cをインストールします。
データのインポート
-
データを18c XEデータベースにインポートするには、次の手順を実行します。
-
SYSDBA
権限を使用してユーザーSYS
として18c XEデータベースに接続します。 -
ディレクトリ・オブジェクト
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;
-
データをダンプ・フォルダから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 "すでに存在します"エラー
-
- データベース・インポート後スクリプトを実行して、Oracle Application Express (APEX)を構成します。
-
https://www.oracle.com/technetwork/developer-tools/apex/application-express/apxfix-5137274.zipをダウンロードし、サーバーに
apfix.sql
スクリプトを解凍します。 -
11.2 XEデータベースでAPEXをアップグレードするために使用したAPEXソースの最上位レベルのディレクトリに、ファイルapxfix.sqlをコピーします。作業ディレクトリをそのソースに変更します。
-
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
-
埋込み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
-
埋込みPL/SQLゲートウェイのHTTPポートを設定します。たとえば、HTTPポートを8080に設定するには、次のようにします。
SQL> ALTER SESSION SET CONTAINER=XEPDB1; SQL> EXEC XDB.DBMS_XDB.SETHTTPPORT(8080); SQL> COMMIT;
-
CDB$ROOT
に接続し、ANONYMOUS
ユーザーをロック解除します。SQL> ALTER SESSION SET CONTAINER=CDB$ROOT; SQL> ALTER USER ANONYMOUS ACCOUNT UNLOCK; SQL> EXIT
-