9 Oracle Database XE 11.2と18cの間のデータのエクスポートおよびインポート
この項では、Oracle Database XE 11gリリース2 (11.2)とXE 18cとの間でデータをエクスポートおよびインポートする方法について説明します。Oracle Application Express (APEX)が11.2データベースで使用されていたかどうかに応じて、次のいずれかの手順を実行します。
9.1 APEX以外のユーザーのデータのエクスポートおよびインポート
ここにトピックの短い説明を入力します(オプション)。
このトピックでは、Oracle Application Express (APEX)が11.2 XEデータベースで使用されていないときに、Oracle Database XE 11.2とXE 18cデータベースの間でデータをエクスポートおよびインポートする方法について説明します。
データのエクスポート
-
データを11.2 XEデータベースからエクスポートするには、次の手順を実行します。
-
DUMP_DIR
ディレクトリ・オブジェクトのディレクトリ\dump_folderをローカル・ファイル・システムに作成します。 -
SYSDBA
権限を使用してユーザーSYS
として11.2 XEデータベースに接続します。 -
ディレクトリ・オブジェクト
DUMP_DIR
を作成し、DUMP_DIR
ディレクトリに対するREAD
およびWRITE
権限をSYSTEM
ユーザーに付与します。sqlplus / AS SYSDBA SQL> CREATE DIRECTORY DUMP_DIR AS 'C:\temp\dump'; SQL> GRANT READ, WRITE ON DIRECTORY DUMP_DIR TO SYSTEM;
-
dump
フォルダを作成するには、Windowsのコマンド・プロンプトから次のコマンドを実行します。mkdir C:\temp\dump
-
11.2 XEデータベースからダンプ・フォルダにデータをエクスポートします。
expdp system/system_password full=Y EXCLUDE=SCHEMA:\"LIKE \'APEX_%\'\",SCHEMA:\"LIKE \'FLOWS_%\'\" directory=DUMP_DIR dumpfile=DB11G.dmp logfile=expdpDB11G.log
-
-
Oracle Database XE 18cのインストールが同じシステムで計画されている場合は、XE 11.2をアンインストールします。
『Oracle Database Express Editionインストレーション・ガイド11gリリース2 (11.2) for Microsoft Windows』の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:listnerport/xepdb1 full=Y EXCLUDE=SCHEMA:\"LIKE \'APEX_%\'\",SCHEMA:\"LIKE \'FLOWS_%\'\" directory=DUMP_DIR dumpfile=DB11G.dmp logfile=impdpDB11G.log
次のエラーは無視できます。-
ORA-39083: オブジェクト型TABLESPACE:"SYSAUX"の作成がエラーで失敗しました
-
ORA-31685: 権限が不十分なため、オブジェクト型USER:"SYS"が失敗しました。
-
ORA-39083: オブジェクト型PROCACT_SYSTEMの作成がエラーで失敗しました
-
ORA-01917: ユーザーまたはロール'APEX_040000'は存在しません
-
ORA-31684 "すでに存在します"エラー
-
9.2 Oracle Application Expressユーザーのデータのエクスポートおよびインポート
この項では、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 'C:\temp\dump'; 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 Express Editionインストレーション・ガイド11gリリース2 (11.2) for Microsoft Windows』の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 'C:\temp\dump';; SQL> GRANT READ, WRITE ON DIRECTORY DUMP_DIR TO SYSTEM;
-
データをダンプ・フォルダから18c XEデータベースにインポートします。
impdp system/system_password@localhost/xepdb1 full=Y REMAP_DIRECTORY='C:\app\usernamne\install_dir\oradata\XE\':'\install_dir\oradata\XE\' 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
に解凍した場合、次のようになります。SQL> @apex_epg_config.sql SYSTEM_DRIVE:\TEMP
-
埋込み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
-